【问题标题】:How to properly organize and nest packages in Java如何在 Java 中正确组织和嵌套包
【发布时间】:2014-04-23 23:09:19
【问题描述】:

如果我要使用以下方法,请按照 Java Tutorial 进行包命名约定:

org.example.hyphenated_name.user

org.example.hyphenated_name.product

这将如何转化为实际创建此包结构。我会为org 创建一个单独的包然后在org 中创建example 等等,还是只是两个包org.example.hyphenated_name.userorg.example.hyphenated_name.product

基本上我想知道的是,. 是否仅用于命名分隔,或者它是否用于表示每次物理创建一个新包。

【问题讨论】:

    标签: java package


    【解决方案1】:

    这是它在磁盘驱动器上的物理外观:

    $ mkdir -p org/example/hyphenated/name/user 
    $ mkdir -p org/example/hyphenated/name/product
    $ tree org
    org
    └── example
        └── hyphenated
            └── name
                ├── product
                └── user
    
    5 directories, 0 files
    

    所以实际上,你有一个包的结构:

    • 组织
    • org.example
    • org.example.hyphenated
    • org.example.hyphenated.name
    • org.example.hyphenated.name.product
    • org.example.hyphenated.name.user

    通过创建这样的结构,您现在可以将每个包用于不同的操作。 org.example.hyphenated.name.product 中的产品特定操作类和org.example.hyphenated.name.user package 中的用户特定操作类。这样,您也可以将使用这两个包的类放入例如org.example.hyphenated 包。通过这种方式,您可以创建一个构建良好的应用程序结构,让其他人(以及您在 2-3 个月内)更容易阅读。

    编辑: 通常你不需要关心为包创建文件夹,因为你的 IDE 应该代替你来处理这个。

    【讨论】:

    • 请注意,此答案中的命令适用于 Unix/Linux。 Windows 上的命令类似,但没有-p 选项,是否创建中间目录取决于是否启用了命令扩展。输入mkdir/?了解详情。
    • 嗯,mkdir 部分不是答案的核心 :) 它只是制作这种树的一个例​​子。
    • 是的,我明白你的意思。但我认为 OP 可能无论如何都必须这样做,除非 IDE 为他这样做。
    【解决方案2】:

    包不是您必须创建的“事物”(除了您通常必须创建目录层次结构来存储源文件)。你几乎只是说你的类属于某个包,编译器说“好的,随便你”。 package_a.package_bpackage_a.package_b.package_c 之间没有对语言语义有任何影响的内置关系。 (我的意思是,如果你在 package_a.package_b.package.c 中有一个类,那么在那个类中,package_a.package_b 中的类没有什么特别之处,而不是,比如说,package_z.package_y。在这两种情况下,它只是“其他一些包”。)

    【讨论】:

    • 那个解释真的很有帮助!我想我模糊了包和目录之间的界限,因为 eclipse 在创建新包时会创建目录结构。
    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多