簡體   English   中英

在Java中,應該創建新的Package,Folder還是Source Folder?

[英]In Java, should I be creating a new Package, Folder, or Source Folder?

關於SO的問題有很多,但我對Java開發是完全陌生的,我不知道解決此問題的正確方法。

我有一個C#解決方案,包含兩個項目(我的應用程序和一個單元測試項目),並且在應用程序內,大多數東西都放在例如文件夾中。 接口,異常等

我正在嘗試在Java / Eclipse中重新創建它,但我不知道如何。 我最終得到了很多包裝,聽起來真的很糟糕。 我也嘗試添加一個源文件夾,但是最終被打包了。

有人能指出我正確的方向嗎?

即,應該使用哪些代表我的單元測試項目/單元測試集,以及僅用於組織內容的子文件夾。

編輯:它還說不建議使用默認程序包。 我該怎么辦?

編輯2:這是它的樣子。 這看起來隱約正確嗎? 我原來的C#解決方案在右邊。

我的版式

在典型的Java eclipse項目中,您將具有一個或多個源文件夾(例如,一個用於應用程序代碼,一個用於您的單元測試)。

每個文件夾都包含一個軟件包樹,通常從您的基本軟件包開始,例如com.mycompany.myapp

為了避免名稱沖突,程序包名稱通常以代碼作者的實體的域名開頭,從頂級域名開始,然后倒退(從更一般到更具體)。 這樣,每個類的完全限定名稱都是唯一的。 例如,如果google創建一個名為List的類,它將被稱為com.google.List ,並且不會與現有的java.util.List接口沖突。

您可以在此基本軟件包中包含無限數量的軟件包,例如:

com.mycompany.myapp.persistence
com.mycompany.myapp.domain
com.mycompany.myapp.services
com.mycompany.myapp.web

這完全取決於您的項目以及組織代碼和類的方式。

在邏輯級別上,包以點作為分隔符來命名。 它們包含Java類。

在物理磁盤級別上,每個程序包都是一個目錄。 Java類包含在.java文件中(最常見的是每個文件一個類)。

在Eclipse中,“源文件夾”是項目內部的文件夾,Eclipse知道該文件夾包含Java源文件。 當您構建項目時,它將被編譯包含在輸出中(例如JAR文件)。

在Eclipse中,通常會在邏輯級別查看它們,並顯示軟件包。 當您告訴Eclipse“創建新軟件包”時,它將為您創建目錄。 例如,如果您告訴它創建com.mycompany.myproject包,它將自動創建一個com文件夾,其中包含一個mycompany文件夾,該文件夾包含一個myproject文件夾。

在Java中,源樹結構必須與包結構相匹配

所以foo.bar包必須放在

src / foo / bar

也可能不建議使用默認軟件包-但您仍然可以使用它-最好將東西放在軟件包中

在Java中,根據項目類型流動不同的項目開發結構。 因此,由於您是Java和Eclipse的新手,因此最好安裝maven插件並創建maven項目,並根據您的項目類型選擇原型,例如獨立或基於Web的原型。 該Maven插件將創建項目結構,包括封裝,測試包的源文件夾等,你可以從中獲取更多關於項目結構

使用默認包可能會導致名稱空間沖突。 假設您正在創建一個包含MyClass類的庫。 有人在他的項目中使用您的庫,並且在他的默認包中還有一個MyClass類。 編譯器應該做什么? Java中的Package實際上是一個可以完全標識您的項目的名稱空間。 因此,在實際項目中不要使用默認程序包非常重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM