VO是跟數(shù)據(jù)庫(kù)里表的映射,一個(gè)表對(duì)應(yīng)一個(gè)VO 
DAO是用VO來(lái)訪問(wèn)真實(shí)的表,對(duì)數(shù)據(jù)庫(kù)的操作都在DAO中完成 
BO是業(yè)務(wù)層,做邏輯處理的

VO , PO , BO , QO, DAO ,POJO 

O/R Mapping 是 Object Relational Mapping (對(duì)象關(guān)系映射)的縮寫(xiě)。

通俗點(diǎn)講,就是將對(duì)象與關(guān)系數(shù)據(jù)庫(kù)綁定,用對(duì)象來(lái)表示關(guān)系數(shù)據(jù)。在 O/R 

Mapping 的世界里,有兩個(gè)基本的也是重要的東東需要了解,即 VO , PO 。

VO ,值對(duì)象 (Value Object) ,

PO ,持久對(duì)象 (Persistent Object) ,它們是由一組屬性和屬性的 get 和 set 方法組成。從結(jié)構(gòu)上看,它們并沒(méi)有什么不同的地方。但從其意義和本質(zhì)上來(lái)看是完全不同的。 
1. VO 是用 new 關(guān)鍵字創(chuàng)建,由 GC 回收的。 
   PO 則是向數(shù)據(jù)庫(kù)中添加新數(shù)據(jù)時(shí)創(chuàng)建,刪除數(shù)據(jù)庫(kù)中數(shù)據(jù)時(shí)削除的。并且它只能存活在一個(gè)數(shù)據(jù)庫(kù)連接中,斷開(kāi)連接即被銷毀。 
2. VO 是值對(duì)象,精確點(diǎn)講它是業(yè)務(wù)對(duì)象,是存活在業(yè)務(wù)層的,是業(yè)務(wù)邏輯使用的,它存活的目的就是為數(shù)據(jù)提供一個(gè)生存的地方。 
   PO 則是有狀態(tài)的,每個(gè)屬性代表其當(dāng)前的狀態(tài)。它是物理數(shù)據(jù)的對(duì)象表示。使用它,可以使我們的程序與物理數(shù)據(jù)解耦,并且可以簡(jiǎn)化對(duì)象數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換。 
3. VO 的屬性是根據(jù)當(dāng)前業(yè)務(wù)的不同而不同的,也就是說(shuō),它的每一個(gè)屬性都一一對(duì)應(yīng)當(dāng)前業(yè)務(wù)邏輯所需要的數(shù)據(jù)的名稱。 
PO 的屬性是跟數(shù)據(jù)庫(kù)表的字段一一對(duì)應(yīng)的。 
PO 對(duì)象需要實(shí)現(xiàn)序列化接口。 
-------------------------------------------------

網(wǎng)友評(píng)論