2010-07-14 48 views
4

我是使用Java EE編程Web應用程序的初學者。你如何命名你的軟件包?程序包名稱 - Java EE Web應用程序

我經常看到類似com.abc.commons的東西......有沒有一種標準或常見的方法來做到這一點?


感謝seanizer,我該怎麼用你的方法:com.mycompany.myproject.api

+0

我刪除了'jee6'標籤,因爲問題不是特定於Java SDK或版本,而是添加了'naming-conventions'。 – 2010-07-14 08:41:04

+1

這對你很好,但不是編輯你原來的帖子,好的stackoverflow的做法是將答案標記爲可接受 – 2010-07-14 11:54:02

回答

7

這些部分通常進入我的包名

  1. 域名(你的或你的公司/客戶)向後
  2. 項目名稱
  3. 神器名(API,客戶端,測試等)
  4. 功能

例如:

com.mycompany.myproject.api.services 
// contains service interfaces for project myproject 

com.mycompany.myproject.common.util.string 
// contains string-related utility classes that reside in a library module 
// that will be used by several other artifacts 

一個很好的做法是擁有一個獨立於個別項目(jar等)的通用根包。例如:在jar myproject-api.jar中,根包將是com.mycompany.myproject.api。這樣,你總是知道在哪裏找到你的課程。

+0

你怎麼看待僅僅使用項目名稱(這是唯一的)(比如'myproject.api.services' )而不是'com.mycompany.myproject.api.services'。我更喜歡這一點,因爲這更具可讀性,我認爲,在每個包名稱中包含公司名稱/域名等是沒有意義的。您對此有何看法?這背後是否有任何技術問題?非常感謝! – 2011-09-28 04:44:34

+1

@Marcos不,我沒有遇到任何技術問題,只爲公司或組織提供公共包名稱空間被認爲是一種很好的做法。它可以更容易地將屬於一組的內容進行分組 – 2011-09-28 06:42:20

2

是的,看到Sun Naming Conventions

唯一包名稱的前綴總是以全小寫ASCII字母書寫,並且應該是頂級域名之一,當前爲com,edu,gov,mil,net,org,或者其中之一按照ISO標準3166,1981規定的英文雙字母代碼。

包名稱的後續組件根據組織自身的內部命名約定而有所不同。這樣的約定可能會指定某些目錄名稱組件是分區,部門,項目,機器或登錄名。

實例:

  • com.sun.eng
  • com.apple.quicktime.v2
  • edu.cmu.cs.bovik.cheese
0

的常規方式是做你自己的域名倒退,因爲這是一個很好的保證,其他人不會不小心使用這些包名稱。