项目名、包名和类名应该取什么名字?(Java - Eclipse)

9

我从未理解过给项目、包和类命名的理想方式是什么。我总是随意命名,看起来一点也不专业。我知道类名应该以大写字母开头。但我很难找到合适且专业的名称。让我们以斐波那契数列程序为例:

project name = fibonacci_project
package name = org.fib.code1
class name = Code1

看起来不太整齐,你该如何处理?

6个回答

12

以下是关于命名的一些提示:

  1. 如您所说,类名应该将每个单词的首字母大写,例如 LongClassName
  2. Sun公司总是倾向于使用能够清晰解释类含义的长名称(想一想DefaultTableModel)。Code1 明显不合适,也许 FibonacciCalc 或者其他包含 Fibonacci 的名称更好。
  3. 如果是抽象类,则在其前面加上 Abstract
  4. 如果是特定接口的实现,则在其后面添加 Impl
  5. 包名应该以 org、com、it 等开头(通常是项目代码库的反向URL或程序员的昵称)
  6. 应根据功能拆分包,您的示例非常简单,因此没有必要这样做。

考虑具有更复杂结构的内容,例如:

org.package.gui
org.package.core
org.package.extensions

6
仅限于某些情况下,4 才是合适的。通常仅在只有一个接口和一种实现的情况下使用。如果存在多个实现,名称应该代表具体的实现,而不是接口本身。 - Robin
3
我不同意3和4:那些额外的名称并没有增加有关实现/类的相关信息。跟进链接:https://groups.google.com/forum/#!topic/clean-code-discussion/KsOOM8xsayM - Gustavo Matias
抱歉打扰了。如果我的网站是(例如)fourinchknife.github.io,我应该怎么做 .../src/main/java/io/github/fourinchknife/<project_name> - Riley

6
首先,这是关于斐波那契数列的Fibonacci
请参考Sun的Java命名规范,了解有关包/类名称的详细信息。
除此之外,一个通用的经验法则是-所有名称都应该具有描述性:
  • 对于类 - 它做什么(或代表什么)
  • 对于包 - 所有在该包中的类提供的常见功能(目标)是什么(旨在实现)

使用Sun的命名约定,它们是几乎所有人都在Java中使用的事实标准。 - Jesper
+1 - 除了成为事实上的标准之外,Sun规则还有助于避免不同的团队意外地在不同的类中使用相同的FQN。 - Stephen C

4

您的项目名称可以是“斐波那契求解器”。

您的包名可以以“com.silverkid.fibsolver”开头。

您的主类应该是“FibonacciSolver.java”。


1

示例:

项目名称 - FibonacciSeriesProducer
包名 - com.lazywithclass.utils,com.lazywithclass.entryPoint
类名 - FibonacciLogic.java,FibonacciPrinter.java

这是我会这样做的,也许在开发过程中会有所改变,真正重要的约定是类名的命名约定,请看看以下步骤是否有所帮助:

  1. 确定解决问题所需的对象
  2. 知道一个类的目的后,相应地命名它
  3. 注意你的类名,在开发过程中保持它们的意义

请参见此处以获取一些示例。


0

我喜欢 Eclipse 项目的命名方案,其中项目名称只是项目提供的核心包的名称,例如:项目名称:org.eclipse.emf.core 或 org.eclipse.emf.common


0

你的类名应该始终以大写字母开头。 你的包名应该始终以小写字母开头。 而类内的方法名也应该以小写字母开头。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接