領域模型VO、DTO、BO、DO、PO、Query

 

  • VO(View Object):視圖對象,用於展示層,它的作用是把某個指定頁面(或組件)的所有數據封裝起來。
  • VO(value object) : 值對象 ,通常用於業務層之間的數據傳遞。可以和PO一樣僅僅包含數據、也可以是抽象出的業務對象,可以跟數據庫表對應,根據業務的需要。
  • DTO(Data Transfer Object):數據傳輸對象,可以以減少分佈式調用的次數,提高分佈式調用的性能和降低網絡負載,我理解爲僅爲層級之間的數據傳輸對象(不與頁面展示和數據庫之間有交互)。
  • AO(Application Object):應用對象,在Web層與Service層之間抽象的複用對象模型,極爲貼近展示層,複用度不高。
  • BO(Business Object):業務對象。從業務模型的角度看,見UML元件領域模型中的領域對象。封裝業務邏輯的java對象,通過調用DAO方法,結合PO,VO進行業務操作。 
  • DO(Domain Object):領域對象,就是從現實世界中抽象出來的有形或無形的業務實體。此對象與數據庫表結構一一對應,通過DAO層想上傳輸數據源對象。
  • PO(Persistent Object):持久化對象,它跟持久層(通常是關係型數據庫)的數據結構形成一一對應的映射關係,如果持久層是關係型數據庫,那麼,數據表中的每個字段(或若干個)就對應PO的一個(或若干個)屬性。可以理解成一條PO就是數據庫中的一條記錄、事務依賴的原始數據;一條記錄視爲一個對象可以方便轉化爲其他對象。PO(Persistant Object)於DO(Data Object)分層相同,通常使用DO。
  • Query:數據查詢對象,各層接收上層的查詢請求(查詢數據庫返回到頁面)。注:超過 2 個參數的查詢封裝,禁止 使用 Map 類來傳輸。
  • DAO(Data access object) 數據訪問對象 :這個大家最熟悉,和上面幾個O區別最大,基本沒有互相轉化的可能性和必要.,主要用來封裝對數據庫的訪問。通過它可以把POJO持久化爲PO,用PO組裝出來VO、DTO;用於表示一個數據訪問對象。使用 DAO 訪問數據庫,包括插入、更新、刪除、查詢等操作,與 PO 一起使用。DAO 一般在持久層,完全封裝數據庫操作,對外暴露的方法使得上層應用不需要關注數據庫相關的任何信息。

https://blog.51cto.com/zero01/2441196?source=dra 有大佬詳細說明領域模型轉換。

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