1. 程式人生 > >VO、DTO、POJO、PO的區別

VO、DTO、POJO、PO的區別

VO

即value object值物件。
主要體現在檢視的物件,對於一個WEB頁面將整個頁面的屬性封裝成一個物件。然後用一個VO物件在控制層與檢視層進行傳輸交換。


DTO

經過處理後的PO,可能增加或者減少PO的屬性:Data Transfer Object資料傳輸物件
主要用於遠端呼叫等需要大量傳輸物件的地方。
比如我們一張表有100個欄位,那麼對應的PO就有100個屬性。
但是我們介面上只要顯示10個欄位,
客戶端用WEB service來獲取資料,沒有必要把整個PO物件傳遞到客戶端,
這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以後,如果用這個物件來對應介面顯示,那此時它的身份就轉為VO。

POJO

POJO是一種概念或者介面,身份及作用隨環境變化而變化:
POJO有一些private的引數作為物件的屬性。然後針對每個引數定義了get和set方法作為訪問的介面
plain ordinary java object 簡單java物件,即POJO是一個簡單的普通的Java物件,它不包含業務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現任何其它Java框架的類或介面。
POJO物件有時也被稱為Data物件,大量應用於表現現實中的物件。

一個POJO持久化以後就是PO。
直接用它傳遞、傳遞過程中就是DTO
直接用來對應表示層就是VO