《Java開發手冊》v1.5.0 華山版編碼規約解讀之命名風格

1.1 POJO 命名規約

最近在看《Java開發手冊》v1.5.0 華山版,看到編碼規約中有這麼一條:
在這裏插入圖片描述
感覺這些名詞如果用的不多,會容易混淆,因此相關解釋彙總如下:

專業術語 解釋
DO DO(Domain Object),與數據庫表結構一一對應,通過DAO層向上傳輸數據源對象。xxxDO,xxx即爲數據表名
BO BO( Business Object):業務對象。 由Service層輸出的封裝業務邏輯的對象.
DTO DTO( Data Transfer Object):數據傳輸對象,Service或Manager向外傳輸的對象。xxxDTO,xxx爲業務領域相關的名稱
VO VO( View Object):顯示層對象,通常是Controller Web層向模板渲染引擎層傳輸的對象。xxxVO,xxx一般爲網頁名稱
POJO POJO( Plain Ordinary Java Object),POJO是DO/BO/DTO/VO的統稱,禁止命名成xxxPOJO.在本手冊中, POJO專指只有setter/getter/toString的簡單類,包括DO/DTO/BO/VO等。
AO AO( Application Object):應用對象。 在Web層與Service層之間抽象的複用對象模型,極爲貼近展示層,複用度不高。
PO PO(Persistent Object)持久化對象,它跟持久層(通常是關係型數據庫)的數據結構形成一一對應的映射關係,如果持久層是關係型數據庫,那麼,數據表中的每個字段(或若干個)就對應PO的一個(或若干個)屬性
UID UID 用戶身份證明(User Identification)的縮寫

1.2 Service/DAO層方法命名規約

  1. 獲取單個對象的方法用get作前綴。
  2. 獲取多個對象的方法用list作前綴。
  3. 獲取統計值的方法用count作前綴。
  4. 插入的方法用save/insert作前綴。
  5. 刪除的方法用remove/delete作前綴。
  6. 修改的方法用update作前綴。

1.3 抽象類命名規約

抽象類命名使用 Abstract 或 Base 開頭 ;

1.4 異常類命名規約

異常類命名使用 Exception 結尾 ;

1.5 布爾類型變量命名規約

【強制】 POJO 類中布爾類型的變量,都不要加 is 前綴 ,否則部分框架解析會引起序列化錯誤。
反例:定義爲基本數據類型 Boolean isDeleted 的屬性,它的方法也是 isDeleted() , RPC 框架在反向解析的時候,“誤以爲”對應的屬性名稱是 deleted ,導致屬性獲取不到,進而拋
出異常。

1.6 接口和接口實現類命名規約

接口和實現類的命名有兩套規則:

  • 【強制】對於 Service 和 DAO 類,基於 SOA 的理念,暴露出來的服務一定是接口,內部的實現類用 Impl 的後綴與接口區別。 正例: CacheServiceImpl 實現 CacheService 接口。
  • 【推薦】 如果是形容能力的接口名稱,取對應的形容詞爲接口名 ( 通常是– able 的形式 ) 。 正例: AbstractTranslator 實現 Translatable 接口 。

1.7 枚舉類型命名規約

【參考】枚舉類名建議帶上 Enum 後綴,枚舉成員名稱需要全大寫,單詞間用下劃線隔開。

  • 說明:枚舉其實就是特殊的類,域成員均爲常量,且構造方法被默認強制是私有。
  • 正例:枚舉名字爲 ProcessStatusEnum 的 成員名稱: SUCCESS / UNKNOWN _ REASON 。

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章