Java分層領域模型的DO、DTO、BO、AO、VO、POJO、Query定義


 


 

分層領域模型
    DO( Data Object):與數據庫表結構一一對應,通過DAO層向上傳輸數據源對象。
    DTO( Data Transfer Object):數據傳輸對象,Service或Manager向外傳輸的對象。
    BO( Business Object):業務對象。 由Service層輸出的封裝業務邏輯的對象。
    AO( Application Object):應用對象。 在Web層與Service層之間抽象的復用對象模型,極為貼近展示層,復用度不高。
    VO( View Object):顯示層對象,通常是Web向模板渲染引擎層傳輸的對象。
    Query:數據查詢對象,各層接收上層的查詢請求。 注意超過2個參數的查詢封裝,禁止使用Map類來傳輸。
  POJO( Plain Ordinary Java Object):簡單的Java對象,專指只有setter/getter/toString的簡單類,包括DO/DTO/BO/VO等。


領域模型命名
    數據對象:xxxDO,xxx即為數據表名。
    數據傳輸對象:xxxDTO,xxx為業務領域相關的名稱。
    展示對象:xxxVO,xxx一般為網頁名稱。
    POJO是DO/DTO/BO/VO的統稱,禁止命名成xxxPOJO。

 

POJO真正的意義

  POJO = "Plain Old Java Object",即簡單的Java對象,是MartinFowler等發明的一個術語,用來表示普通的Java對象,不是JavaBean, EntityBean 或者 SessionBean。POJO不擔當任何特殊的角色,也不實現任何特殊的Java框架的接口如 EJB,JDBC等等。
即POJO是一個簡單的普通的Java對象,它不包含業務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現任何其它Java框架的類或接口。
 
摘自Martin Fowler個人網站的一句話:
  "We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name.
So we gave them one, and it's caught on very nicely."
 
  我們疑惑為什么人們不喜歡在他們的系統中使用普通的對象,我們得到的結論是——普通的對象缺少一個響亮的名字,因此我們給它們起了一個,並且取得了很好的效果!

 


                  故嶼γ                   

 

 


免責聲明!

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



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