1.VO是用new關鍵字創建,由GC回收的。
PO則是向數據庫中添加新數據時創建,刪除數據庫中數據時削除的。并且它只能存活在一個數據庫連接中,斷開連接即被銷毀。
2.VO是值對象,精確點講它是業務對象,是存活在業務層的,是業務邏輯使用的,它存活的目的就是為數據提供一個生存的地方。
PO則是有狀態的,每個屬性代表其當前的狀態。它是物理數據的對象表示。使用它,可以使我們的程序與物理數據解耦,并且可以簡化對象數據與物理數據之間的轉換。
3.VO的屬性是根據當前業務的不同而不同的,也就是說,它的每一個屬性都一一對應當前業務邏輯所需要的數據的名稱。
PO的屬性是跟數據庫表的字段一一對應的。
PO對象需要實現序列化接口。
java中vo pojo javabean dto的解釋:
VO(value object) 值對象
通常用于業務層之間的數據傳遞,和PO一樣也是僅僅包含數據而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要.個人覺得同DTO(數據傳輸對象),在web上傳遞。
POJO(POJO是一種概念或者接口,身份及作用隨環境變化而變化) :
POJO有一些PRivate的參數作為對象的屬性。然后針對每個參數定義了get和set方法作為訪問的接口
plain ordinary java object 簡單java對象
即POJO是一個簡單的普通的Java對象,它不包含業務邏輯或持久邏輯等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不繼承或不實現任何其它Java框架的類或接口。
POJO對象有時也被稱為Data對象,大量應用于表現現實中的對象。
一個POJO持久化以后就是PO。
直接用它傳遞、傳遞過程中就是DTO
直接用來對應表示層就是VO
JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數的構造器。JavaBean 通過提供符合一致性設計模式的公共方法將內部域暴露成員屬性。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自身機制發現和操作這些JavaBean 的屬性。
DTO (經過處理后的PO,可能增加或者減少PO的屬性):
Data Transfer Object數據傳輸對象
主要用于遠程調用等需要大量傳輸對象的地方。
比如我們一張表有100個字段,那么對應的PO就有100個屬性。
但是我們界面上只要顯示10個字段,
客戶端用WEB service來獲取數據,沒有必要把整個PO對象傳遞到客戶端,
這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO。
---------------------------------------------------------------------------------------
VO :
value object值對象
ViewObject表現層對象
主要對應界面顯示的數據對象。對于一個WEB頁面,或者SWT、SWING的一個界面,用一個VO對象對應整個界面的值。
DTO :
Data Transfer Object數據傳輸對象
主要用于遠程調用等需要大量傳輸對象的地方。
比如我們一張表有100個字段,那么對應的PO就有100個屬性。
但是我們界面上只要顯示10個字段,
客戶端用WEB service來獲取數據,沒有必要把整個PO對象傳遞到客戶端,
這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO
POJO :
plain ordinary java object 簡單java對象
個人感覺POJO是最常見最多變的對象,是一個中間對象,也是我們最常打交道的對象。
一個POJO持久化以后就是PO
直接用它傳遞、傳遞過程中就是DTO
直接用來對應表示層就是VO
------------------------------------------------------------------------------
VO:value object值對象。通常用于業務層之間的數據傳遞,和PO一樣也是僅僅包含數據而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要.個人覺得同DTO(數據傳輸對象),在web上傳遞.
POJO:plain ordinary java object 簡單無規則java對象,我個人覺得它和其他不是一個層面上的東西,VO和PO應該都屬于它.
-----------------------------------------------------------------------------
POJO、VO和JavaBean區別和聯系
POJO和JavaBean是我們常見的兩個關鍵字,一般容易混淆,POJO全稱是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻譯成:普通Java類,具有一部分getter/setter方法的那種類就可以稱作POJO,但是JavaBean則比POJO復雜很多,JavaBean是一種組件技術,就好像你做了一個扳子,而這個扳子會在很多地方被拿去用,這個扳子也提供多種功能(你可以拿這個扳子扳、錘、撬等等),而這個扳子就是一個組件。
很顯然POJO也是JavaBean的一種。一般在web應用程序中建立一個數據庫的映射對象時,我們只能稱它為POJO。
vo有兩種說法,一個是viewObject,一個是valueObject..就拿前者來說吧,它只負責封裝頁面傳遞過來的數據,這和PO有些不同..就拿struts1來說,ActionForm就是一個典型的viewObject. 而valueObject是頁面與頁面之間的傳遞時保存值的對象....總的來說,PO是最終傳給BO以及BO傳個DAO的東西,他很多情況下與我們真正的數據庫表想對應.而viewObject是一個頁面上提交后的數據,不一定完全和PO的屬性相同
實際上沒區別 他們的功能都一樣 不過他們使用地點不一樣
新聞熱點
疑難解答