2014年11月18日 星期二

[Java] 淺談 PO BO VO Entity DTO POJO DAO

PO(Persistant Object)
一個 PO 即資料庫裡的一筆記錄。
好處是可以把一筆記錄當作一個物件處理,可以方便的轉換成其他物件。

BO(Business Object)
主要作用是把業務邏輯封裝為一個物件。這個物件可以包括一個或多個其他的物件。
比如一個簡歷,有教育經歷、工作經歷等等
我們可以把教育經歷對應一個PO,工作經歷對應一個PO。
建立一個對應簡歷的BO物件處理簡歷,每個BO包含這些PO。
這樣處理業務邏輯時,我們就可以針對BO去處理。 

VO(Value Object)
ViewObject表現層物件
主要對應介面顯示的資料物件。對於一個WEB頁面,或者SWT、SWING的一個介面,用一個VO物件對應整個介面的值。
Entity 與 VO:
Entity 帶有 Identity,VO 沒有帶 Identity,也就是說 Entity 只有異動了 Identity 才算是不同物件,但 VO 只要有屬性被變更了,就視為是不同物件

DTO(Data Transfer Object)
主要用於遠端調用等需要大量傳輸物件的地方。
比如我們一張表有100個欄位,那麼對應的PO就有100個屬性。
但是我們介面上只要顯示10個欄位,用戶端用WEB service來獲取資料,不需要將整個PO物件傳遞到用戶端,
此時即可以用只有10個屬性的DTO來傳遞結果到用戶端,如此亦不會暴露服務端表結構。到達用戶端以後,如果用這個物件來對應介面顯示,那此時它的身份就轉為VO

POJO(Plain Old Java Object or Plain Ordinary Java Object)
只有屬性及getter、setter 的 Java Object
一個POJO持久化以後就是PO
直接用它傳遞、傳遞過程中就是DTO
直接用來對應表示層就是VO

DAO(Data Access Object)
主要用來封裝對資料庫的訪問。通過它可以把POJO持久化為PO,用PO組裝出來VO、DTO

出自來源:
http://blog.db.idv.tw/2010/12/java-po-bo-vo-entity-dto-pojo-dao.html

沒有留言:

張貼留言