PO:持久對象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每個屬性基本上都對應數據庫表里面的某個字段。完全是一個符合Java Bean規范的純Java對象,沒有增加別的屬性和方法。持久對象是由insert數據庫創建,由數據庫delete刪除的。基本上持久對象生命周期和數據庫密切相關。
VO:值對象(Value Object),通常用於業務層之間的數據傳遞,和PO一樣也是僅僅包含數據而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要。
表現層對象(View Object),主要對應展示界面顯示的數據對象,用一個VO對象來封裝整個界面展示所需要的對象數據。
BO:業務對象層的縮寫(Business Object),封裝業務邏輯的java對象,通過調用DAO方法,結合PO,VO進行業務操作。具體可以看網上的一個例子:
比如一個簡歷,有教育經歷、工作經歷、社會關系等等。
我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關系對應一個PO。
建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。
這樣處理業務邏輯時,我們就可以針對BO去處理。
DTO:數據傳輸對象(Data Transfer Object),是一種設計模式之間傳輸數據的軟件應用系統。數據傳輸目標往往是數據訪問對象從數據庫中檢索數據。數據傳輸對象與數據交互對象或數據訪問對象之間的差異是一個以不具有任何行為除了存儲和檢索的數據(訪問和存取器)。簡單來說,當我們需要一個對象10個字段的內容,但這個對象總共有20個字段,我們不需要把整個PO對象全部字段傳輸到客戶端,而是可以用DTO重新封裝,傳遞到客戶端。此時,如果這個對象用來對應界面的展現,就叫VO。
JavaBean:一種可重用組件,即“一次性編寫,任何地方執行,任何地方重用”。滿足三個條件①類必須是具體的和公共的②具有無參構造器③提供一致性設計模式的公共方法將內部域暴露成員屬性。
主要用途:可以用在 功能、處理、值、數據庫訪問和JSP中任何可以用Java代碼創造的對象。
有兩種:一種是有用戶界面(UI,User Interface)的JavaBean;還有一種是沒有用戶界面,主要負責處理事務(如數據運算,操縱數據庫)的JavaBean。JSP通常訪問的是后一種JavaBean。
分類:通常有Session bean,Entity bean,MessageDrivenBean三大類
JavaBeans:JavaBeans 從狹義來說,指的是 JavaBeans 規范也就是位於 java.beans 包中的一組 API。從廣義上來說,JavaBeans 指的是 API 集合,比如 Enterprise JavaBeans。
POJO:POJO(Plain Ordinary Java Object)簡單的Java對象,實際就是普通JavaBeans,是為了避免和EJB混淆所創造的簡稱。通指沒有使用Entity Beans的普通java對象,可以把POJO作為支持業務邏輯的協助類。
直接用來對應表示層就是VO
DAO: 數據訪問對象是第一個面向對象的數據庫接口,是一個數據訪問接口(Data Access Object)。它可以把POJO持久化為PO,用PO組裝出來VO、DTO。