一 分層領(lǐng)域模型規(guī)約:
- DO(Data Object):此對象與數(shù)據(jù)庫表結(jié)構(gòu)一一對應(yīng),通過 DAO 層向上傳輸數(shù)據(jù)源對象。
- DTO(Data Transfer Object):數(shù)據(jù)傳輸對象,Service 或 Manager 向外傳輸?shù)膶ο蟆?/li>
- BO(Business Object):業(yè)務(wù)對象,由 Service 層輸出的封裝業(yè)務(wù)邏輯的對象。
- AO(ApplicationObject):應(yīng)用對象,在Web層與Service層之間抽象的復(fù)用對象模型, 極為貼近展示層,復(fù)用度不高。
- VO(View Object):顯示層對象,通常是 Web 向模板渲染引擎層傳輸?shù)膶ο蟆?/li>
- Query:數(shù)據(jù)查詢對象,各層接收上層的查詢請求。注意超過 2 個參數(shù)的查詢封裝,禁止使用 Map 類來傳輸。
領(lǐng)域模型命名規(guī)約:
- 數(shù)據(jù)對象:xxxDO,xxx即為數(shù)據(jù)表名
- 數(shù)據(jù)傳輸對象:xxxDTO,xxx為業(yè)務(wù)領(lǐng)域相關(guān)的名稱。
- 展示對象:xxxVO,xxx一般為網(wǎng)頁名稱。
- POJO:DO/DTO/BO/VO的統(tǒng)稱,禁止命名成xxxPOJO。
二 、具體含義
PO (persistant object )持久對象 (ENTITY)
可以看成是與數(shù)據(jù)庫中的表相映射的java對象。使用Hibernate來生成PO是不錯的選擇
VO (value object) 值對象
通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,PO只能用在數(shù)據(jù)層,VO用在商業(yè)邏輯層和表示層。各層操作屬于該層自己的數(shù)據(jù)對象,這樣就可以降低各層之間的耦合,便于以后系統(tǒng)的維護(hù)和擴(kuò)展。
BO (Business Object) 業(yè)務(wù)對象層
表示應(yīng)用程序領(lǐng)域內(nèi)“事物”的所有實體類。這些實體類駐留在服務(wù)器上,并利用服務(wù)類來協(xié)助完成它們的職責(zé)。
DTO (Data Transfer Object) 數(shù)據(jù)傳輸對象
主要用于遠(yuǎn)程調(diào)用等需要大量傳輸對象的地方。比如我們一張表有100個字段,那么對應(yīng)的PO就有100個屬性。但是我們界面上只要顯示10個字段,客戶端用WEB service來獲取數(shù)據(jù),沒有必要把整個PO對象傳遞到客戶端,這時我們就可以用只有這10個屬性的DTO來傳遞結(jié)果到客戶端,這樣也不會暴露服務(wù)端表結(jié)構(gòu)。到達(dá)客戶端以后,如果用這個對象來對應(yīng)界面顯示,那此時它的身份就轉(zhuǎn)為VO。
POJO (Plain Old Java Objects) 簡單的Java對象
實際就是普通JavaBeans,使用POJO名稱是為了避免和EJB混淆起來,而且簡稱比較直接。其中有一些屬性及其getter、setter方法的類,有時可以作為value object或dto(Data Transform Object)來使用。文章來源:http://www.zghlxwxcb.cn/news/detail-451264.html
DAO 數(shù)據(jù)訪問對象
PO 數(shù)據(jù)訪問參數(shù)對象
VO 數(shù)據(jù)訪問返回對象
DTO 數(shù)據(jù)傳輸對象
BO 業(yè)務(wù)對象文章來源地址http://www.zghlxwxcb.cn/news/detail-451264.html
到了這里,關(guān)于PO、VO、DAO、BO、DTO、POJO區(qū)分的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!