java基礎之對象類型

POJO:Plain Ordinary Java Object 簡單的Java對象

實際就是普通JavaBeans,是爲了避免和EJB混淆所創造的簡稱。通指沒有使用Entity Beans的普通java對象,可以把POJO作爲支持業務邏輯的協助類。

POJO實質上可以理解爲簡單的實體類,顧名思義POJO類的作用是方便程序員使用數據庫中的數據表,對於廣大的程序員,可以很方便的將POJO類當做對象來進行使用,當然也是可以方便的調用其get,set方法。POJO類也給我們在struts框架中的配置帶來了很大的方便。
1 .POJO持久化之後==〉PO

(在運行期,由Hibernate中的cglib動態把POJO轉換爲PO,PO相對於POJO會增加一些用來管理數據庫entity狀態的屬性和方法。PO對於programmer來說完全透明,由於是運行期生成PO,所以可以支持增量編譯,增量調試。)

2 .POJO傳輸過程中==〉DTO

3 .POJO用作表示層==〉VO


PO:persistant object 持久對象

1 .有時也被稱爲Data對象,對應數據庫中的entity,可以簡單認爲一個PO對應數據庫中的一條記錄。

2 .在hibernate持久化框架中與insert/delet操作密切相關。

3 .PO中不應該包含任何對數據庫的操作。

就是在Object/Relation Mapping框架中的Entity,po的每個屬性基本上都對應數據庫表裏面的某個字段。完全是一個符合Java Bean規範的純Java對象,沒有增加別的屬性和方法。持久對象是由insert數據庫創建,由數據庫delete刪除的。基本上持久對象生命週期和數據庫密切相關。


DTO(TO):Data Transfer Object 數據傳輸對象

1 .用在需要跨進程或遠程傳輸時,它不應該包含業務邏輯。

2 .比如一張表有100個字段,那麼對應的PO就有100個屬性(大多數情況下,DTO 內的數據來自多個表)。但view層只需顯示10個字段,沒有必要把整個PO對象傳遞到client,這時我們就可以用只有這10個屬性的DTO來傳輸數據到client,這樣也不會暴露server端表結構。到達客戶端以後,如果用這個對象來對應界面顯示,那此時它的身份就轉爲VO。


VO:view object 值對象
視圖對象,用於展示層,它的作用是把某個指定頁面(或組件)的所有數據封裝起來。

1 .主要對應頁面顯示(web頁面/swt、swing界面)的數據對象。

2 .可以和表對應,也可以不,這根據業務的需要。


BO :business object 業務對象

封裝業務邏輯爲一個對象(可以包括多個PO,通常需要將BO轉化成PO,才能進行數據的持久化,反之,從DB中得到的PO,需要轉化成BO才能在業務層使用)。

關於BO主要有三種概念

1 、只包含業務對象的屬性;

2 、只包含業務方法;

3 、兩者都包含。

在實際使用中,認爲哪一種概念正確並不重要,關鍵是實際應用中適合自己項目的需要。

這個對象可以包括一個或多個其它的對象。 比如一個簡歷,有教育經歷、工作經歷、社會關係等等。 我們可以把教育經歷對應一個 PO ,工作經歷對應一個 PO ,社會關係對應一個 PO 。 建立一個對應簡歷的 BO 對象處理簡歷,每個 BO 包含這些 PO 。 這樣處理業務邏輯時,我們就可以針對 BO 去處理。


DAO :data access object 數據訪問對象

1 .主要用來封裝對DB的訪問(CRUD操作)。

2 .通過接收Business層的數據,把POJO持久化爲PO。

是一個 sun 的一個標準 j2ee 設計模式, 這個模式中有個接口就是 DAO ,它是持久層的操作。爲業務層提供接口。此對象用於訪問數據庫。通常和 PO 結合使用, DAO 中包含了各種數據庫的操作方法。通過它的方法 , 結合 PO 對數據庫進行相關的操作。夾在業務邏輯與數據庫資源中間。配合 VO, 提供數據庫的 CRUD 操作


DO:Domain Object 領域對象
就是從現實世界中抽象出來的有形或無形的業務實體。一般和數據中的表結構對應。


JavaBean 是一種JAVA語言寫成的可重用組件。它的方法命名,構造及行爲必須符合特定的約定:

1、這個類必須有一個公共的缺省構造函數。

2、這個類的屬性使用getter和setter來訪問,其他方法遵從標準命名規範。

3、這個類應是可序列化的。

因爲這些要求主要是靠約定而不是靠實現接口,所以許多開發者把JavaBean看作遵從特定命名約定的POJO。

簡而言之,當一個Pojo可序列化,有一個無參的構造函數,使用getter和setter方法來訪問屬性時,他就是一個JavaBean


Entity

實體,和PO的功能類似,和數據表一一對應,一個實體一張表


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章