一、PO :(persistant object),持久對象
二、VO :(value object),值對象
三、DAO :(Data Access Objects),數(shù)據(jù)訪問對象接口
四、BO :(Business Object),業(yè)務對象層
五、DTO Data Transfer Object數(shù)據(jù)傳輸對象
六、POJO :(Plain Old Java Objects),簡單的Java對象
一、PO :(persistant object ),持久對象
可以看成是與數(shù)據(jù)庫中的表相映射的java對象。使用Hibernate來生成PO是不錯的選擇。
基于 Spring Boot + MyBatis Plus + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權限、多租戶、數(shù)據(jù)權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://github.com/YunaiV/ruoyi-vue-pro
視頻教程:https://doc.iocoder.cn/video/
二、VO :(value object) ,值對象
通常用于業(yè)務層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已。但應是抽象出的業(yè)務對象,可以和表對應,也可以不,這根據(jù)業(yè)務的需要.
PO只能用在數(shù)據(jù)層,VO用在商業(yè)邏輯層和表示層。各層操作屬于該層自己的數(shù)據(jù)對象,這樣就可以降低各層之間的耦合,便于以后系統(tǒng)的維護和擴展。
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權限、多租戶、數(shù)據(jù)權限、工作流、三方登錄、支付、短信、商城等功能
項目地址:https://github.com/YunaiV/yudao-cloud
視頻教程:https://doc.iocoder.cn/video/
三、DAO :(Data Access Objects) ,數(shù)據(jù)訪問對象接口
DAO是Data Access Object數(shù)據(jù)訪問接口,數(shù)據(jù)訪問:顧名思義就是與數(shù)據(jù)庫打交道。夾在業(yè)務邏輯與數(shù)據(jù)庫資源中間。
J2EE開發(fā)人員使用數(shù)據(jù)訪問對象(DAO)設計模式把底層的數(shù)據(jù)訪問邏輯和高層的商務邏輯分開.實現(xiàn)DAO模式能夠更加專注于編寫數(shù)據(jù)訪問代碼.
DAO模式是標準的J2EE設計模式之一.開發(fā)人員使用這個模式把底層的數(shù)據(jù)訪問操作和上層的商務邏輯分開.一個典型的DAO實現(xiàn)有下列幾個組件:
一個DAO工廠類;
一個DAO接口;
一個實現(xiàn)DAO接口的具體類;
數(shù)據(jù)傳遞對象(有些時候叫做值對象).
具體的DAO類包含了從特定的數(shù)據(jù)源訪問數(shù)據(jù)的邏輯。
四、BO :(Business Object),業(yè)務對象層
表示應用程序領域內“事物”的所有實體類。這些實體類駐留在服務器上,并利用服務類來協(xié)助完成它們的職責。
五、DTO Data Transfer Object數(shù)據(jù)傳輸對象
主要用于遠程調用等需要大量傳輸對象的地方。比如我們一張表有100個字段,那么對應的PO就有100個屬性。但是我們界面上只要顯示10個字段,客戶端用WEB service來獲取數(shù)據(jù),沒有必要把整個PO對象傳遞到客戶端,這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO
六、POJO :(Plain Old Java Objects),簡單的Java對象
實際就是普通JavaBeans,使用POJO名稱是為了避免和EJB混淆起來, 而且簡稱比較直接.其中有一些屬性及其getter、setter方法的類,有時可以作為value object或dto(Data Transform Object)來使用.當然,如果你有一個簡單的運算屬性也是可以的,但不允許有業(yè)務方法,也不能攜帶有connection之類的方法
編輯:黃飛
?
評論