天天看點

搞清楚java中的PO、VO、DAO、BO、DTO、POJO

1、PO :(persistant object ),持久對象

與資料庫中的表相映射的java對象

2、VO :(value object) ,值對象

通常用于業務層之間的資料傳遞,和PO一樣也是僅僅包含資料而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要。

PO隻能用在資料層,VO用在商業邏輯層和表示層。各層操作屬于該層自己的資料對象,這樣就可以降低各層之間的耦合,便于以後系統的維護和擴充。

3、DAO :(Data Access Objects) ,資料通路對象接口

DAO是Data Access Object資料通路接口,資料通路:顧名思義就是與資料庫打交道。夾在業務邏輯與資料庫資源中間。

J2EE開發人員使用資料通路對象(DAO)設計模式把底層的資料通路邏輯和高層的商務邏輯分開.實作DAO模式能夠更加專注于編寫資料通路代碼。

DAO模式是标準的J2EE設計模式之一.開發人員使用這個模式把底層的資料通路操作和上層的商務邏輯分開.一個典型的DAO實作有下列幾個元件:

一個DAO工廠類;

一個DAO接口;

一個實作DAO接口的具體類;

資料傳遞對象(有些時候叫做值對象).

具體的DAO類包含了從特定的資料源通路資料的邏輯。

4、BO :(Business Object),業務對象層

應用程式領域内“事物”的所有實體類。這些實體類駐留在伺服器上,并利用服務類來協助完成它們的職責。

5、DTO Data Transfer Object資料傳輸對象

主要用于遠端調用等需要大量傳輸對象的地方。比如我們一張表有100個字段,那麼對應的PO就有100個屬性。

但是我們界面上隻要顯示10個字段,用戶端用WEB service來擷取資料,沒有必要把整個PO對象傳遞到用戶端,這時我們就可以用隻有這10個屬性的DTO來傳遞結果到用戶端,這樣也不會暴露服務端表結構。

到達用戶端以後,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO。

6、POJO :(Plain Old Java Objects),簡單的Java對象

實際就是普通JavaBeans,使用POJO名稱是為了避免和EJB混淆起來, 而且簡稱比較直接.其中有一些屬性及其getter、setter方法的類,有時可以作為value object或dto(Data Transform Object)來使用。