VO DTO DO PO 概念及其區別

2021-10-21 10:43:26 字數 1020 閱讀 2481

領域模型中的實體類分為四種模型:vo、dto、do、po,各種實體類用於不同業務層次間的互動,並會在層次內實現實體類之間的轉化。

用於展示層,它的作用是把某個指定頁面(或元件)的所有資料封裝起來。

主要用於展示層與服務層之間的資料傳輸物件

就是從現實世界中抽象出來的有形或無形的業務實體。

它跟持久層(通常是關係型資料庫)的資料結構形成一一對應的對映關係,如果持久層是關係型資料庫,那麼,資料表中的每個欄位就對應po的乙個屬性。

dto 和 vo 的屬性值基本是一致的,而且他們通常都是 pojo,但兩者存在本質上的區別;dto 代表服務層需要接收的資料和返回的資料,而

vo 代表展示層需要顯示的資料。

首先是概念上的區別,dto 是展示層和服務層之間的資料傳輸物件(可以認為是兩者之間的協議),而 do

是對現實世界各種業務角色的抽象,這就引出了兩者在資料上的區別。

do 和 po 在絕大部分情況下是一一對應的,po是只含有 get/set 方法的pojo,但某些場景還是能反映出兩者在概念上存在本質區別:

do在某些場景下不需要進行顯式的持久化,例如利用策略模式設計的商品折扣策略,會衍生出折扣策略的介面和不同折扣策略實現類,這些折扣策略實現類可以算是

do,但它們只會駐留在靜態記憶體池,不需要持久化到持久層,因此,這類 do 是不存在對應的 po的。

同樣的道理,某些場景下,po也沒有對應的do,例如老師teacher和學生student存在多對多的關係,在關聯式資料庫中,這種關係需要表現為乙個中間表,也就對應有乙個teacherandstudentpo的po,但這個po在業務領域沒有任何現實的意義,它完全不能與任何do對應上。

VO DTO DO PO概念區別

概念 vo view object 檢視物件,用於展示層,作用 把某個指定的頁面 元件 的資料封裝起來 dto data transfer object 資料傳輸物件,提供粗粒度的資料實體,以減少分布式呼叫的的次數,從而提高分布式呼叫的效能和降低網路負載 微服務之間互相呼叫的的資料傳輸物件 do d...

SpringAOP概念及其使用

aop aspect oriented programming 面向切面程式設計 通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop是oop的延續,是軟體開發中的乙個熱點,也是spring框架中的乙個重要內容,是函式式程式設計的一種衍生范型。利用aop可以對業務邏輯的各個部分進行隔...

EHCI,OHCI,UHCI概念及區別

uhci ehci ohci基本概念 uhci universal host controller inte ce intel用在自家晶元組上的usb 1.1主控制器 host controller 的硬體介面 ehci enhanced host controller inte ce 增強型主機控...