1. 程式人生 > >java工程中檔案命名(PO/POJO/VO/BO/DAO/DTO)

java工程中檔案命名(PO/POJO/VO/BO/DAO/DTO)

作為測試研發進階的初級菜鳥,最近看公司研發寫的工程程式碼,有些規則的命名,然不知道具體意義。以下內容來自網路。
 
PO(persistant object)持久物件
在o/r對映的時候出現的概念,如果沒有o/r對映,就沒有這個概念存在了.通常對應資料模型(資料庫),本身還有部分業務邏輯的處理.可以看成是與資料庫中的表相對映的java物件.最簡單的PO就是對應資料庫中某個表中的一條記錄,多個記錄可以用PO的集合,只能存活在一個數據庫連線中,斷開連線即被銷燬。 
O/R對映:層是持久層的一個特例,它的資料模型是物件模型(Object),儲存模型是關係模型(Relational),cmp和Hibernate是物件模型到關係模型之間轉換的兩種不同實現。
 
VO(value object)值物件
精確點講它是業務物件,是存活在業務層的,是業務邏輯使用的,它存活的目的就是為資料提供一個生存的地方。 
BO(business object)業務物件
從業務模型的角度看,見UML元件領域模型中的領域物件。封裝業務邏輯的java物件,通過呼叫DAO方法,結合PO,VO進行業務操作。 主要作用是把業務邏輯封裝為一個物件。這個物件可以包括一個或多個其它的物件。比如一個簡歷,有教育經歷、工作經歷、社會關係等等。 我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關係對應一個PO。 建立一個對應簡歷的BO物件處理簡歷,每個BO包含這些PO。 這樣處理業務邏輯時,我們就可以針對BO去處理。 
 
POJO(plain ordinary java object)簡單無規則java物件
純的傳統意義的java物件.就是說在一些Object/Relation Mapping工具中,能夠做到維護資料庫表記錄的persisent object完全是一個符合Java Bean規範的純Java物件,沒有增加別的屬性和方法.我的理解就是最基本的Java Bean,只有屬性欄位及setter和getter方法!.
 
DAO(data access object)資料訪問物件
是sun的一個標準j2ee設計模式,這個模式中有個介面就是DAO,它負責持久層的操作.為業務層提供介面.此物件用於訪問資料庫.通常和PO結合使用,DAO中包含了各種資料庫的操作方法.通過它的方法,結合PO對資料庫進行相關的操作.夾在業務邏輯與資料庫資源中間.配合VO,提供資料庫的CRUD操作。
 
DTO (Data Transfer Object)資料傳輸物件
主要用於遠端呼叫等需要大量傳輸物件的地方。
比如我們一張表有100個欄位,那麼對應的PO就有100個屬性。
但是我們介面上只要顯示10個欄位,
客戶端用WEB service來獲取資料,沒有必要把整個PO物件傳遞到客戶端,
這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以後,如果用這個物件來對應介面顯示,那此時它的身份就轉為VO。
 
TO(Transfer Object),資料傳輸物件 
在應用程式不同tie(關係)之間傳輸的物件