POJO /BO /VO /DTO /javabean

javabean
    在Java程序或JSP程序中,有很多的代碼段是可以重複使用的,比如對數據庫的操作、用戶的有效性檢查及某些項特定功能的實現等。爲了很好的解決這個問題,提高開發效率,Sun公司推出了JavaBean,簡言之,JavaBean是一個實現了某個功能且供重複使用的Java類。

    在JSP中使用JavaBean後,可實現HTML與Java代碼的分離,使JSP更易於開發和維護。因此JavaBean成了JSP程序員的必備利器之一。

     雖然JavaBean是Java類,同時它也具有自己的一些特徵:

      1、 JavaBean是一個public的類

      2、 JavaBean有一個不帶參數的構造方法

      3、 JavaBean中的屬性通過getXXX()和setXXX()進行操作

按着Sun公司的定義,JavaBean是一個可重複使用的軟件組件。實際上JavaBean是一種Java類,通過封裝屬性和方法成爲具有某種功能或者處理某個業務的對象,簡稱bean。由於

javabean是基於java語言的,因此javabean不依賴平臺,具有以下特點:
  1. 可以實現代碼的重複利用
  2. 易編寫、易維護、易使用
  3. 可以在任何安裝了Java運行環境的平臺上的使用,而不需要重新編譯。

比如我們編寫一個計算圓面積的java類CircleArea.java  以後需要計算圓面積的地方直接調用就行了。

 

POJO :plain ordinary java object 無規則簡單java對象 
一箇中間對象,可以轉化爲PO、DTO、VO。 
1 .POJO持久化之後==〉PO 
(在運行期,由Hibernate中的cglib動態把POJO轉換爲PO,PO相對於POJO會增加一些用來管理數據庫entity狀態的屬性和方法。PO對於programmer來說完全透明,由於是運行期生成PO,所以可以支持增量編譯,增量調試。) 
2 .POJO傳輸過程中==〉DTO 
3 .POJO用作表示層==〉VO 
PO 和VO都應該屬於它。

普通的Java對象,對於屬性一般實現了JavaBean的標準,另外還可以包含一些簡單的業務邏輯(方法)。

 

PO :persistent object持久對象 
1 .有時也被稱爲Data對象,對應數據庫中的entity,可以簡單認爲一個PO對應數據庫中的一條記錄。 
2 .在hibernate持久化框架中與insert/delet操作密切相關。 
3 .PO中不應該包含任何對數據庫的操作。

POJO在持久層的體現,對POJO持久化後就成了PO。PO更多的是跟數據庫設計層面相關,一般PO與數據表對應,一個PO就是對應數據表的一條記錄。

 

BO :business object 業務對象 
封裝業務邏輯爲一個對象(可以包括多個PO,通常需要將BO轉化成PO,才能進行數據的持久化,反之,從DB中得到的PO,需要轉化成BO才能在業務層使用)。 
關於BO主要有三種概念 
1 、只包含業務對象的屬性; 
2 、只包含業務方法; 
3 、兩者都包含。

 POJO在業務層的體現,對於業務操作來說,更多的是從業務上來包裝對象,如一個User的BO,可能包括name, age, sex, privilege, group等,這些屬性在數據庫中可能會在多張表中,因爲每一張表對應一個PO,而我們的BO需要這些PO組合起來(或說重新拼裝)才能成爲業務上的一個完整對象。


VO :value object值對象 / view object表現層對象 
1 .主要對應頁面顯示(web頁面/swt、swing界面)的數據對象。 
2 .可以和表對應,也可以不,這根據業務的需要。 
注 :在struts中,用ActionForm做VO,需要做一個轉換,因爲PO是面向對象的,而ActionForm是和view對應的,要將幾個PO要顯示的屬性合成一個ActionForm,可以使用BeanUtils的copy方法。

POJO在表現層的體現。 當我們處理完數據時,需要展現時,這時傳遞到表現層的POJO就成了VO。它就是爲了展現數據時用的。


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

POJO在系統間傳遞時。當我們需要在兩個系統間傳遞數據時,一種方式就是將POJO序列化後傳遞,這個傳遞狀態的POJO就是DTO。

 

 

引用文章:

https://www.cnblogs.com/DiDi516/p/5860773.html

https://www.cnblogs.com/xiaotangtang/p/4923039.html

https://www.cnblogs.com/yeyuchangfeng/p/4546138.html

 

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