2014-04-23 22 views
0

Java Tutorial的包命名約定去,如果我是用下面的辦法:如何正確組織和巢包在Java中

org.example.hyphenated_name.user

org.example.hyphenated_name.product

這將如何轉化爲實際創建這個包結構。我會爲org然後內org,我會創造example等創建一個單獨的包或者這純粹是2包org.example.hyphenated_name.userorg.example.hyphenated_name.product

基本上我想知道是,如果只是用來命名分離或如果.它用來表示每次物理創建一個新包。

回答

2

軟件包不是您必須創建的「事物」(除了您通常必須創建用於存儲源文件的目錄層次結構外)。你幾乎可以說你的類屬於某個包,編譯器會說「OK,無論你想要什麼」。 package_a.package_bpackage_a.package_b.package_c之間沒有內置關係,這對語言語義有任何影響。 (我的意思是,如果你在package_a.package_b.package.c中有一門課,那麼在該課上,package_a.package_b中的課程沒有什麼特別之處,比如package_z.package_y。在這兩種情況下,這只是「其他包」。)

+0

這個解釋真的有幫助!我想我模糊了一個包和一個目錄之間的界限,因爲eclipse會在創建一個新包時創建目錄結構。 – Redek

3

這是它的外觀物理磁盤驅動器上:

$ 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
  • 組織。 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應該照顧而不是您。

+0

請注意,此答案中的命令適用於Unix/Linux。 Windows上的命令類似,但沒有「-p」選項,中間目錄是否創建取決於是否啓用命令擴展。輸入'mkdir /?'獲取詳細信息。 – ajb

+0

好吧,mkdir部分不是答案的核心:)它只是製作這樣一棵樹的一個例​​子。 – Benjamin

+0

是的,我明白你的意思。但我認爲OP可能必須這樣做,除非IDE爲他做。 – ajb