回覆列表
-
1 # 浮窗小記
-
2 # 會點程式碼的大叔
稱呼確實很多,我把我知道的總結一下:
VOvalue object:值物件
通常用於業務層之間的資料傳遞,由new建立,由GC回收。
POpersistant object:持久層物件
對應資料庫中表的欄位。
VO和PO,都是屬性加上屬性的get和set方法;表面看沒什麼不同,但代表的含義是完全不同的。
DTOdata transfer object:資料傳輸物件。
表裡面有十幾個欄位:id,name,gender(M/F),age,conmpanyId(如001)...
DTO由此產生,一是能提高資料傳輸的速度(減少了傳輸欄位),二能隱藏後端表結構。
BObusiness object:業務物件
BO把業務邏輯封裝為一個物件。
我理解是PO的組合,比如投保人是一個PO,被保險人是一個PO,險種資訊是一個PO等等,他們組合起來是第一張保單的BO。
POJOplain ordinary java object:簡單無規則java物件
純的傳統意義的java物件,最基本的Java Bean只有屬性加上屬性的get和set方法。
可以轉化為PO、DTO、VO;比如POJO在傳輸過程中就是DTO。
DAOdata access object:資料訪問物件
主要用來封裝對資料的訪問,注意,是對資料的訪問,不是對資料庫的訪問。
其他的還有model/module/domain/entity什麼的...等我再總結總結...
我想把它們翻譯成“人話”講出來。
簡單介紹下吧:
Java Bean:一種可重用元件,即“一次編寫,任何地方執行,任何地方重用”。滿足三個條件a.類必須是具體的和公共的;b.具有無參構造器;c.提供一致性設計模式的公共方法將內部域暴露成員屬性。
PO:持久物件(Persistent Object)是ORM(Object Relational Mapping)框架中Entity,PO的屬性和資料表的欄位形成一一對應關係。
VO:值物件(Value Object),通常用於業務層之間的資料傳遞,和PO一樣也是僅僅包含資料而已,但應是抽象出的業務物件,可以和表對應,也可以不是。
BO:業務物件(Business Object),封裝業務邏輯,透過呼叫DAO方法,結合PO或VO進行業務操作。
DTO:資料傳輸物件(Data Transfer Object),是一種設計模式之間傳輸資料的軟體應用系統。資料傳輸目標往往是資料訪問物件從資料庫中檢索資料。資料傳輸物件與資料互動物件或資料訪問物件之間的差異是一個以不具有任何行為除了儲存和檢索的資料(訪問和存取器)。簡單點說就是介面之間傳遞的資料封裝。
DAO:資料訪問物件(Data Access Object)是sun的一個標準j2ee設計模式,這個模式中有個介面就是DAO,負責持久層的操作。
Entity:實體,和PO的功能類似,和資料表一一對應,一個實體一張表。
其實這些都是Java物件,只不過在專案中用於不同的場合罷了。