1. 程式人生 > 實用技巧 >PO BO VO DTO POJO DAO概念及其作用

PO BO VO DTO POJO DAO概念及其作用

>>> hot3.png

PO:
persistant object持久物件,最形象的理解就是一個PO就是資料庫中的一條記錄。好處是可以把一條記錄作為一個物件處理,可以方便的轉為其它物件。

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

VO :
value object值物件,ViewObject表現層物件。主要對應介面顯示的資料物件。對於一個WEB頁面,或者SWT、SWING的一個介面,用一個VO物件對應整個介面的值。

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

POJO :
plain ordinary java object 簡單java物件,個人感覺POJO是最常見最多變的物件,是一箇中間物件,也是我們最常打交道的物件。一個POJO持久化以後就是PO,直接用它傳遞、傳遞過程中就是DTO,直接用來對應表示層就是VO。

DAO:
data access object資料訪問物件,這個大家最熟悉,和上面幾個O區別最大,基本沒有互相轉化的可能性和必要.主要用來封裝對資料庫的訪問。通過它可以把POJO持久化為PO,用PO組裝出來VO、DTO。

大家千萬不要陷入過度設計,大可不必為了設計而設計一定要在程式碼中區分各個物件。一句話技術是為應用服務的。

轉載於:https://my.oschina.net/mywiki/blog/1587483