Java開發命名規范


寫在最前面


 

由於Java面向對象編程的特性, 在命名時應盡量選擇名詞。在命名的時候,最常用的就是駝峰命名法(Camel-Case): 當變量名或函式名是由一個或多個單字連結在一起,而構成的唯一識別字時,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。

 

一、包名的書寫規范(Package)

      推薦使用公司或機構的頂級域名為包名的前綴,目的是保證各公司/機構內所使用的包名的唯一性。包名全部為小寫字母,且具有實際的區分意義。

  1.1 一般要求

    1、選擇有意義的名字,能快速地傳達該類的用途。

    2、所有包的命名必須采用小寫英文字母。

  1.2 實際應用

    應用系統中經常應用分層,Dao層(數據庫訪問)、Service層(業務處理)、Web層(頁面控制action類)。

    1、包名的前幾個為固定名稱, 如果是網站的話,采用網站的域名的反寫,如果域名還沒有確定的話,采用公司固定的幾個名稱。如:net.vschool

    2、在包名的接下來一個單詞為模塊的名稱。如:用戶模塊,包名為net.vschool.user

    3、關於模塊的訪問操作,采用分層形式,一般分為:

       Dao層操作:一般定義在net.vschool.xxx.dao中,其中xxx為模塊名稱。

       Service層操作:一般定義在net.vschool.xxx.servie中。

       web層操作:一般定義在net.vschool.xxx.action中。

  1.3 如下關於用戶模塊的例子:

    net.vschool.user

    net.vschool.user.dao

    net.vschool.user.action

    net.vschool.user.service


 

二、類名的書寫規范 (Class)

  類名必須使用名詞,如果一個類名內含多個單詞,那么各個單詞第一個字母大寫,后續字母小寫,起伏呈駝峰狀,人稱駝峰式命名。給類名命名時,必須保證准確、簡潔且容易理解。盡量使用完整單詞,避免使用縮寫詞(除了大家公認的)

  2.1 一般要求

    1、選擇有意義的名字,能快速地傳達該類的用途。

    2、參照java駝峰命名法,類名的首字母必須采用大寫的形式,如果類名為多詞組合而成的話,那么每個詞的首字母必須采用大寫。如:StudentAnswer.java

    3、當要區別接口類和實現類的時候,可以在類的后面加上“Impl”。 如:接口類:UserInterface.java   接口實現類:UserInterfaceImpl

    4、推薦實體類沒有后綴名。

  2.2 實際應用

    應用系統中經常應用分層,Dao層(數據庫訪問)、Service層(業務處理)、Web層(頁面控制action類),每一層的類的名稱盡量帶上該層后綴。

    1、Dao層

      a、接口類:采用JavaBean+Interface+Dao的形式來定義,即,實體對象+Interface+Dao。   如:用戶對象接口類:UserInterfaceDao,其中xxx為模塊名稱。

      b、實現類:采用JavaBean+Interface+Impl+Dao的形式來定義,即,實體對象         +Interface+Impl+Dao。如:用戶對象實現類:UserInterfaceImplDao

    2、Service層

      a、接口類:采用Xxx+Interface+Service的形式來定義,即,模塊+Interface+Service。     如:用戶管理接口類:UserMsgInterfaceServiec

      b、實現類:采用Xxx+Interface+Impl+Service的形式來定義,即,模塊+Interface+Impl+Service。如:用戶管理實現類:UserMsgInterfaceImplServiec

    3、Web層(action類)

      a、實現類:采用縣Xxx+Operator+Action的形式來定義,即,模塊+操作+Action。如:用戶模塊User+刪除操作Delete+Action = UserDeleteAction


 

三、方法的命名

  3.1 一般要求

    1、選擇有意義的名字,能快速地傳達該方法的用途。

    2、參照java駝峰命名法,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。

  3.2 實際應用

    1、方法表示一種行為,它代表一種動作,最好是一個動詞或者動詞詞組或者第一個單詞為一個動詞。

    2、屬性方法:以get/set開頭,其后跟字段名稱,字段名稱首字母大寫。如:getUserName()

    3、數據層方法:只能以insert(插入),delete(刪除),update(更新),select(查找),count(統計)開頭,其他層方法避免以這個5個單詞開頭,以免造成誤解。

    4、服務層方法,根據方法的行為命名,只描述方法的意義,而不采用方法的目的命名。比如系統的添加新用戶,用戶可以前台注冊,也可以管理員后台添加,方法會被重用,所以最好不要用使用register,采用add會更好寫。避免使用與web層相關的方法。

    5、Web層方法最好是貼近web的語言,如register,login,logout等方法。

四、變量的命名

  4.1 普通變量

    4.1.1 一般要求

      1、選擇有意義的名字,能快速地傳達該變量的用途。

      2、參照java駝峰命名法,首字母以小寫開頭,每個單詞首字母大寫(第一個單詞除外)。

    4.1.2 實際應用

      1、變量命名采用基本結構為typeVariableName,使用3字符前綴來表示數據類型。

數據類型或對象類型

變量前綴

備注

byte

bye

1、做數組用時,再加前綴-a,如字符串數組:astr,

2、自定義類型的變量可以采用本身的名稱,把首字母改為小寫。

3、采用名稱要能代表在方法中的意義。如果員工列表:employeeList

char

chr

float

flt

boolean

bln

Integer/int

int

short

sht

Long/long

lng

Double/double

dbl

string

str

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      例如,定義一個整形變量:intDocCount,其中int表明數據類型,后面為表意的英文名,每個單詞首字母大寫。

      2、變量使用技巧:

          a、在一段函數中不使用同一個變量表示前后意義不同的兩個數值。

          b、除非是在循環中,否則一般不推薦使用單個字母作為變量名,i、j、k等只作為小型循環的循環索引變量。

          c、避免用Flag來命名狀態變量。

          d、用Is來命名邏輯變量,如:blnFileIsFound。通過這種給布爾變量肯定形式的命名方式,使得其它開發人員能夠更為清楚的理解布爾變量所代表的意義。  

          e、如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性。例如,如果在代碼的某些區域中使用intCnt,而在另一些區域中又使用intCount,就會給代碼增加不必要的復雜性。建議變量名中盡量不要出現縮寫。   

  4.2 靜態變量

    1、選擇有意義的名字,能快速地傳達該變量的用途。

    2、參照java駝峰命名法,采用全部大寫的形式來書寫,對於采用多詞合成的變量采用“_”來連接各單詞。如:USER_SIZE


 

五、Jsp頁面名稱的書寫規范

  1.  全部采用小寫的英文字符和”_ ”組成。

  2.  整體采用模塊名+操作的形式。如:user_view.jsp

  3.  Jsp頁面盡可能與action的意思對應,如UserListAction對應者user_list.jsp


 

六、注釋的書寫規范(Javadoc)

  原則:1、注釋形式統一在整個應用程序中,使用具有一致的標點和結構的樣式來構造注釋。2、注釋內容准確簡潔內容要簡單、明了、含義准確,防止注釋的多義性,錯誤的注釋不但無益反而有害。

  1、基本注釋(必須加)(a)    類(接口)的注釋(b)    構造函數的注釋(c)     方法的注釋(d)    全局變量的注釋(e)    字段/屬性的注釋 備注:簡單的代碼做簡單注釋,注釋內容不大於10個字即可,另外,持久化對象或VO對象的getter、setter方法不需加注釋。

  2、特殊必加注釋(必須加)(a)    典型算法必須有注釋。(b)    在代碼不明晰處必須有注釋。(c)     在代碼修改處加上修改標識的注釋。(d)    在循環和邏輯分支組成的代碼中加注釋。(e)    為他人提供的接口必須加詳細注釋。

  注釋格式:

    1、單行(single-line)注釋:“//……”

    2、塊(block)注釋:“/*……*/”

    3、文檔注釋:“/**……*/”

    4、javadoc注釋標簽語法

      @author   對類的說明標明開發該類模塊的作者

      @version   對類的說明標明該類模塊的版本

      @see     對類、屬性、方法的說明參考轉向,也就是相關主題

      @param    對方法的說明對方法中某參數的說明

      @return   對方法的說明對方法返回值的說明

      @exception  對方法的說明對方法可能拋出的異常進行說明。

   

    方法注釋:

    例如:

public class Test extends Button {
	/**
	 * 為按鈕添加顏色 
	 * @param color 按鈕的顏色
	 * @return
	 * @exception (方法有異常的話加)
	 * @author Administrator
	 * @Time 2016-11-20 15:02:29
	 */
	public voidaddColor(String color){   
		……  
		}
	}

  

    全局變量注釋:(參考String的注釋方式)

    例如:   

public final class String implements Java.io.Serializable, Comparable<String>,CharSequence

    {

       /** The value is used for characterstorage. */

       private final char value[];

       /** The offset is the first index of thestorage that is used. */

       private final int offset; 

      /** The count is the number of charactersin the String. */   

           private final int count;   

               /** Cache the hash code for the string */

               private int hash; // Default to 0……

          }

    字段/屬性注釋:

    例如:

public class EmailBody implements Serializable{

       private String id;

       private String senderName;//發送人姓名

       private String title;//不能超過120個中文字符

       private String content;//郵件正文

       private String attach;//附件,如果有的話

       private String totalCount;//總發送人數

       private String successCount;//成功發送的人數

       private Integer isDelete;//0不刪除 1刪除

       private Date createTime;//目前不支持定時所以創建后即刻發送

       privateSet<EmailList>EmailList;

    ……

  }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM