POJO

POJO全稱Plain Ordinary Java Object,表示簡單的Java對象,是DO/DTO/BO/VO的統(tǒng)稱。一個POJO持久化后就會成為PO,若用來傳遞則傳遞過程中是DTO,若用來對應(yīng)表現(xiàn)層則是VO。

POJO 全稱 說明
DO Domain Object 領(lǐng)域?qū)ο?/td>
DTO Data Transfer Object 數(shù)據(jù)傳輸對象
BO Bussiness Object 業(yè)務(wù)對象
VO View Object 表現(xiàn)層對象,對應(yīng)視圖層用于展示層。
  • DO領(lǐng)域?qū)ο螅菑默F(xiàn)實世界中抽象出來的有形或無形的業(yè)務(wù)實體,簡單來說是對現(xiàn)實世界中各種業(yè)務(wù)角色的抽象。
  • DTO數(shù)據(jù)傳輸對象,概念源于J2EE的設(shè)計模式,目的是為EJB的分布式應(yīng)用提供粗粒度的數(shù)據(jù)實體,以減少分布式調(diào)用次數(shù),從而提高分布式調(diào)用性能,以降低網(wǎng)絡(luò)負(fù)載。DTO主要用于遠(yuǎn)程調(diào)用、不同層之間(通常是View展示層和Service服務(wù)層之間)等需要大量傳輸對象的位置。DTO遵守JavaBean規(guī)范,擁有Getter/Setter方法,類似VO。
  • BO業(yè)務(wù)對象,作用是把業(yè)務(wù)邏輯封裝為一個對象,可以包括一個或多個對象,通常封裝了對DAO、RPC等的調(diào)用,可進行PO與VO/DTO之間的裝換。BO位于業(yè)務(wù)層(區(qū)別于直接對外提供服務(wù)的服務(wù)層),BO提供了基本業(yè)務(wù)單元的基礎(chǔ)業(yè)務(wù)操作,在設(shè)計上屬于被業(yè)務(wù)流程調(diào)用的對象(一個業(yè)務(wù)流程可能需要調(diào)用多個BO來完成)。
  • VO表現(xiàn)層對象,用于表示一個與前端進行交互的Java對象。VO的作用是將頁面或組件的數(shù)據(jù)進行封裝,使用一個VO對象表示一整個頁面所需展示的值,其他不需要的數(shù)據(jù)不應(yīng)該放入到VO對象中,以減少數(shù)據(jù)傳輸量。VO遵守JavaBean規(guī)范擁有Getter/Setter方法。

BO相關(guān)的概念:只包含業(yè)務(wù)對象的屬性、只包含業(yè)務(wù)的方法、兩者都包含

業(yè)務(wù)邏輯 是否負(fù)責(zé)
系統(tǒng)領(lǐng)域業(yè)務(wù)的處理 負(fù)責(zé)
邏輯性數(shù)據(jù)的生成、處理與轉(zhuǎn)換 負(fù)責(zé)
對所輸入的邏輯性數(shù)據(jù)的正確性及有效性 負(fù)責(zé)
對輸出的邏輯性數(shù)據(jù)以及用戶性數(shù)據(jù)正確性 不負(fù)責(zé)
對數(shù)據(jù)的呈現(xiàn)樣式 不負(fù)責(zé)

相關(guān)概念

模型命名 全稱 說明
PO Persistent Object 持久化對象
DAO Data Access Object 數(shù)據(jù)訪問對象
VO Value Object 值對象
  • PO持久化對象,跟持久層(關(guān)系型數(shù)據(jù)庫)的數(shù)據(jù)結(jié)構(gòu)形成一一對應(yīng)的映射關(guān)系,僅用于表示數(shù)據(jù)。一個PO對象相當(dāng)于數(shù)據(jù)庫中的一條記錄,每個字段對應(yīng)PO對象的一個屬性。因此,PO可視為是與數(shù)據(jù)庫表相映射的Java對象。PO遵守JavaBean規(guī)范,除了Setter/Getter之外沒有任何操作。
  • VO值對象,用于業(yè)務(wù)層之間數(shù)據(jù)傳遞,和PO一樣僅包含數(shù)據(jù),應(yīng)是抽象出的業(yè)務(wù)對象,可以和表對應(yīng)也可以不對應(yīng)。
  • DAO數(shù)據(jù)訪問層對象,使用DAO訪問數(shù)據(jù)庫包括增刪改查等操作。DAO與PO一起使用,DAO在持久層完全封裝數(shù)據(jù)庫操作,對外暴露的方法。上層應(yīng)用不需要關(guān)注數(shù)據(jù)庫相關(guān)的任何信息。

持久化是將程序數(shù)據(jù)在持久狀態(tài)和瞬時狀態(tài)之間轉(zhuǎn)換的機制,簡單來將是將瞬時數(shù)據(jù)(比如內(nèi)存中的數(shù)據(jù),它是不能永久保存的)持久化為持久數(shù)據(jù)(比如持久化至數(shù)據(jù)庫就能夠長久保存)。

對象轉(zhuǎn)換

對象轉(zhuǎn)換
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容