分層領域模型:
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."
我們疑惑為什么人們不喜歡在他們的系統中使用普通的對象,我們得到的結論是——普通的對象缺少一個響亮的名字,因此我們給它們起了一個,並且取得了很好的效果!
故嶼γ