【问题标题】:package convention for main() method`s Java classmain() 方法的 Java 类的包约定
【发布时间】:2013-03-15 07:45:52
【问题描述】:
我正在构建一个独立的 Java 应用程序。
在那,我必须使用带有main() 方法的类。由于这是所有执行开始的类,我通常放在包结构之一中
com.<company-name>.<project-name>.init
com.<company-name>.<project-name>.main
com.<company-name>.<project-name>.server
com.<company-name>.<project-name>.initializer
我的问题是,
- 上面的包名是否有意义?如果没有,有什么建议吗?
- 这个命名有标准吗?
【问题讨论】:
标签:
java
naming-conventions
packages
【解决方案1】:
当我创建一个带有主类的项目时,我通常将它放在应用程序“com.acmeglobal.killerapplication”的最顶层包中,并给它一个简单的名称,如“App”、“Main”或“Start”。
我尽量让我的主班尽可能小;它只引导应用程序。如果对应用程序参数的解析有点不重要,我什至会为此创建一个单独的类。
在您建议的包名中,我更喜欢“main”,然后是“init”或“initialization”,尽管我认为初始化不应该是主类的关注点。名为“服务器”的包对我来说似乎具有误导性,因为它表明还有一个客户端,我认为您不是有意的。
【解决方案2】:
上面的包名是否有意义?如果不是那么
有什么建议吗?
我认为这是有道理的。如果您的 main 仅包含 Main 类,则合并 main 和 init 对我来说也很好。
这个命名有标准吗?
没有。
【解决方案3】:
您建议的软件包看起来不错,但为了彻底起见,它们应该以相反的域名作为前缀。因此,如果公司Acme 的域为www.acmeglobal.com,则它们的包结构将以com.acmeglobal 为前缀,而不是com.acme。
遵守此标准可降低开发人员创建冲突类的可能性。
【解决方案4】:
定义包结构供您自己使用。如果您将代码放置在适当的包结构中,那么它将有助于将来的维护并提高可读性。