1. VO(value object) 值對象 java
VO 是用 new 關鍵字建立,由 GC 回收的。 數據庫
VO 是值對象,精確點講它是業務對象,是存活在業務層的,是業務邏輯使用的,它存活的目的就是爲數據提供一個生存的地方。 app
VO 的屬性是根據當前業務的不一樣而不一樣的,也就是說,它的每個屬性都一一對應當前業務邏輯所須要的數據的名稱。 工具
2. PO(persistant object) 持久對象 spa
PO 則是向數據庫中添加新數據時建立,刪除數據庫中數據時削除的。而且它只能存活在一個數據庫鏈接中,斷開鏈接即被銷燬。 對象
PO 則是有狀態的,每一個屬性表明其當前的狀態。它是物理數據的對象表示。使用它,可使咱們的程序與物理數據解耦,而且能夠簡化對象數據與物理數據之間的轉換。 接口
PO 的屬性是跟數據庫表的字段一一對應的。 get
PO 對象須要實現序列化接口it
3. TO(Transfer Object) ,數據傳輸對象 io
4. BO(business object) 業務對象
主要做用是把業務邏輯封裝爲一個對象。這個對象能夠包括一個或多個其它的對象。
好比一個簡歷,有教育經歷、工做經歷、社會關係等等。
咱們能夠把教育經歷對應一個 PO ,工做經歷對應一個 PO ,社會關係對應一個 PO 。
創建一個對應簡歷的 BO 對象處理簡歷,每一個 BO 包含這些 PO 。
這樣處理業務邏輯時,咱們就能夠針對 BO 去處理。
5. POJO(plain ordinary java object) 簡單無規則 java 對象
純的傳統意義的 java 對象。就是說在一些 Object/Relation
Mapping 工具中,可以作到維護數據庫表記錄的 persisent
object 徹底是一個符合 Java Bean 規範的純 Java 對象,沒有增長別的屬性和方法。個人理解就是最基本的 Java Bean ,只有屬性字段及 setter 和 getter 方法!。
6. DTO (Data Transfer Object) 數據傳輸對象
主要用於遠程調用等須要大量傳輸對象的地方。
好比咱們一張表有 100 個字段,那麼對應的 PO 就有 100 個屬性。
可是咱們界面上只要顯示 10 個字段,
客戶端用 WEB service 來獲取數據,沒有必要把整個 PO 對象傳遞到客戶端,
這時咱們就能夠用只有這 10 個屬性的 DTO 來傳遞結果到客戶端,這樣也不會暴露服務端表結構 . 到達客戶端之後,若是用這個對象來對應界面顯示,那此時它的身份就轉爲 VO