》#千鋒逆戰(zhàn)#
vo碌宴、po杀狡、dto、bo贰镣、pojo呜象、entity、mode如何區(qū)分
Java Bean:一種可重用組件八孝,即“一次編寫(xiě)董朝,任何地方執(zhí)行鸠项,任何地方重用”干跛。滿足三個(gè)條件
1、類必須是具體的和公共的
2祟绊、具有無(wú)參構(gòu)造器
3楼入、提供一致性設(shè)計(jì)模式的公共方法將內(nèi)部域或暴露成員屬性
VO
value object:值對(duì)象
通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,由new創(chuàng)建牧抽,由GC回收
和PO一樣也是僅僅包含數(shù)據(jù)而已嘉熊,但應(yīng)是抽象出的業(yè)務(wù)對(duì)象,可以和表對(duì)應(yīng)扬舒,也可以不是
PO
persistant object:持久層對(duì)象
是ORM(Objevt Relational Mapping)框架中Entity阐肤,PO屬性和數(shù)據(jù)庫(kù)中表的字段形成一一對(duì)應(yīng)關(guān)系
VO和PO,都是屬性加上屬性的get和set方法;表面看沒(méi)什么不同孕惜,但代表的含義是完全不同的
DTO
data transfer object:數(shù)據(jù)傳輸對(duì)象
是一種設(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)而言之,就是接口之間傳遞的數(shù)據(jù)封裝
表里面有十幾個(gè)字段:id衫画,name毫炉,gender(M/F),age……
頁(yè)面需要展示三個(gè)字段:name削罩,gender(男/女)瞄勾,age
DTO由此產(chǎn)生,一是能提高數(shù)據(jù)傳輸?shù)乃俣?減少了傳輸字段)弥激,二能隱藏后端表結(jié)構(gòu)
BO
business object:業(yè)務(wù)對(duì)象
BO把業(yè)務(wù)邏輯封轉(zhuǎn)為一個(gè)對(duì)象进陡,通過(guò)調(diào)用DAO方法,結(jié)合PO或VO進(jìn)行業(yè)務(wù)操作
PO組合微服,如投保人是一個(gè)PO四濒,被保險(xiǎn)人是一個(gè)PO,險(xiǎn)種信息是一個(gè)PO等等职辨,他們組合氣來(lái)是第一張保單的BO
POJO
plian 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ì)象
是sun的一個(gè)標(biāo)準(zhǔn)j2ee設(shè)計(jì)模式,這個(gè)模式中有個(gè)接口就是DAO腾供,負(fù)責(zé)持久層的操作
主要用來(lái)封裝對(duì)數(shù)據(jù)的訪問(wèn)仆邓,注意,是對(duì)數(shù)據(jù)的訪問(wèn)伴鳖,不是對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)
Entity
實(shí)體节值,和PO的功能類似,和數(shù)據(jù)表一一對(duì)應(yīng)榜聂,一個(gè)實(shí)體一張表