PO,VO,DAO,BO,POJO之间的区别与解释
VO
value object:值對(duì)象
通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,由new創(chuàng)建,由GC回收。
PO
persistant object:持久層對(duì)象
對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的字段。
VO和PO,都是屬性加上屬性的get和set方法;表面看沒(méi)什么不同,但代表的含義是完全不同的。
DTO
data transfer object:數(shù)據(jù)傳輸對(duì)象。
表里面有十幾個(gè)字段:id,name,gender(M/F),age,conmpanyId(如001)…
頁(yè)面需要展示四個(gè)字段:name,gender(男/女),age,conmpanyName(如今日頭條股份有限公司)。
DTO由此產(chǎn)生,一是能提高數(shù)據(jù)傳輸?shù)乃俣?#xff08;減少了傳輸字段),二能隱藏后端表結(jié)構(gòu)。
BO
business object:業(yè)務(wù)對(duì)象
BO把業(yè)務(wù)邏輯封裝為一個(gè)對(duì)象。
我理解是PO的組合,比如投保人是一個(gè)PO,被保險(xiǎn)人是一個(gè)PO,險(xiǎn)種信息是一個(gè)PO等等,他們組合起來(lái)是第一張保單的BO。
POJO
plain ordinary java object:簡(jiǎn)單無(wú)規(guī)則java對(duì)象
純的傳統(tǒng)意義的java對(duì)象,最基本的Java Bean只有屬性加上屬性的get和set方法。
可以轉(zhuǎn)化為PO、DTO、VO;比如POJO在傳輸過(guò)程中就是DTO。
DAO
data access object:數(shù)據(jù)訪問(wèn)對(duì)象
主要用來(lái)封裝對(duì)數(shù)據(jù)的訪問(wèn),注意,是對(duì)數(shù)據(jù)的訪問(wèn),不是對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
Java Bean:一種可重用組件,即“一次編寫(xiě),任何地方執(zhí)行,任何地方重用”。滿足三個(gè)條件a.類(lèi)必須是具體的和公共的;b.具有無(wú)參構(gòu)造器;c.提供一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露成員屬性。
PO:持久對(duì)象(Persistent Object)是ORM(Object Relational Mapping)框架中Entity,PO的屬性和數(shù)據(jù)表的字段形成一一對(duì)應(yīng)關(guān)系。
VO:值對(duì)象(Value Object),通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已,但應(yīng)是抽象出的業(yè)務(wù)對(duì)象,可以和表對(duì)應(yīng),也可以不是。
BO:業(yè)務(wù)對(duì)象(Business Object),封裝業(yè)務(wù)邏輯,通過(guò)調(diào)用DAO方法,結(jié)合PO或VO進(jìn)行業(yè)務(wù)操作。
DTO:數(shù)據(jù)傳輸對(duì)象(Data Transfer Object),是一種設(shè)計(jì)模式之間傳輸數(shù)據(jù)的軟件應(yīng)用系統(tǒng)。數(shù)據(jù)傳輸目標(biāo)往往是數(shù)據(jù)訪問(wèn)對(duì)象從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。數(shù)據(jù)傳輸對(duì)象與數(shù)據(jù)交互對(duì)象或數(shù)據(jù)訪問(wèn)對(duì)象之間的差異是一個(gè)以不具有任何行為除了存儲(chǔ)和檢索的數(shù)據(jù)(訪問(wèn)和存取器)。簡(jiǎn)單點(diǎn)說(shuō)就是接口之間傳遞的數(shù)據(jù)封裝。
DAO:數(shù)據(jù)訪問(wèn)對(duì)象(Data Access Object)是sun的一個(gè)標(biāo)準(zhǔn)j2ee設(shè)計(jì)模式,這個(gè)模式中有個(gè)接口就是DAO,負(fù)責(zé)持久層的操作。
Entity:實(shí)體,和PO的功能類(lèi)似,和數(shù)據(jù)表一一對(duì)應(yīng),一個(gè)實(shí)體一張表。
其實(shí)這些都是Java對(duì)象,只不過(guò)在項(xiàng)目中用于不同的場(chǎng)合罷了。
總結(jié)
以上是生活随笔為你收集整理的PO,VO,DAO,BO,POJO之间的区别与解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网卡接口
- 下一篇: 七、ref引用与数组的常用方法