實體類(VO,DO,DTO,PO)的划分
在項目應用中,VO(值對象)對應於頁面上需要顯示的數據(表單),DO對應於數據庫中存儲的數據(數據表),DTO對應於除二者之外需要進行傳遞的數據。
二、領域模型(概念模型)中的實體類
領域模型(概念模型)中的實體類分為四種類型:VO、DTO、DO、PO,各種實體類用於不同業務層次間的交互,並會在層次內實現實體類之間的轉化。
Ps:VO實際上很模糊,通常指ValueObject和ViewObject.
VO(view object):界面展現需要的對象,如Struts的FormBean。視圖對象,用於展示層,它的作用是把某個指定頁面(或組件)的所有數據封裝起來。
VO(value object):值對象:用於業務層的數據傳遞,類似dto對象。VO是用new關鍵字創建,由GC回收的。VO層用於顯示頁面數據,PO(persistant object)用於數據持久化存儲。值對象:在多數情況下不需要保存;
PO(persistant object) 持久對象:
在o/r映射的時候出現的概念,如果沒有o/r映射,沒有這個概念存在了。通常對應數據模型(數據庫),本身還有部分業務邏輯的處理。可以看成是與數據庫中的表相映射的java對象。最簡單的PO就是對應數據庫中某個表中的一條記錄,多個記錄可以用PO的集合。PO中應該不包含任何對數據庫的操作。(當需要滿足Java對象得到持久化(即保存)的需求)
DO(Domain Object):領域對象,就是從現實世界中抽象出來的有形或無形的業務實體。
DTO(Data Transfer Object):數據傳輸對象,這個概念來源於J2EE的設計模式,原來的目的是為了EJB的分布式應用提供粗粒度的數據實體,以減少分布式調用的次數,從而提高分布式調用的性能和降低網絡負載,但在這里,我泛指用於展示層與服務層之間的數據傳輸對象。
Ps:orm模式bjcet/Relation Mapping)
ORM是什么?
who:首先ORM可以立即為(Object/Relation Mapping): 對象/關系映射
what:其次ORM可以得到持久化對象
when:當需要滿足Java對象得到持久化(即保存)的需求
how:因為ORM會將關系數據庫中表中的記錄映射成為對象,以對象的形式展現,程序員可以把對數據庫的操作轉化為對對象的操作。因此ORM的目的是為了方便開發人員以面向對象的思想來實現對數據庫的操作。
ORM作為是一種思想,幫助我們開發人員跟蹤實體的變化,並將實體的變化翻譯成sql腳本,執行到數據庫中去,也就是將實體的變化映射到了表的變化。
參考自:
https://www.cnblogs.com/lxwphp/p/10618652.html 《ORM的詳解》
https://blog.csdn.net/u010722643/article/details/61201899 《實體類(VO,DO,DTO,PO)的划分》