
一、簡單Java對象
1??PO persistent object
持久對象。與數(shù)據(jù)庫里表字段一一對應(yīng)。PO是一些屬性,以及set和get方法組成。一般情況下,一個表對應(yīng)一個PO,直接與操作數(shù)據(jù)庫的crud相關(guān)。
2??VO view object/value object
表現(xiàn)層對象。通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已。但應(yīng)是抽象出的業(yè)務(wù)對象,可以和表對應(yīng),也可以不。這根據(jù)業(yè)務(wù)的需要而定。對于頁面上要展示的對象,可以封裝一個VO對象,將所需數(shù)據(jù)封裝進去。
3??DTO data trasfer object
數(shù)據(jù)傳輸對象。主要用于遠程調(diào)用等需要大量傳輸對象的地方。
比如一張表有 100 個字段,那么對應(yīng)的 PO 就有 100 個屬性。 但是界面上只要顯示 10 個字段, 客戶端用 WEB service 來獲取數(shù)據(jù),沒有必要把整個 PO 對象傳遞到客戶端,
這時就可以用只有這 10 個屬性的 DTO 來傳遞結(jié)果到客戶端,這樣也不會暴露服務(wù)端表結(jié)構(gòu) . 到達客戶端以后,如果用這個對象來對應(yīng)界面顯示,那此時它的身份就轉(zhuǎn)為 VO。
4??POJO plain ordinary java object/pure old java object
簡單無規(guī)則 java 對象,純的傳統(tǒng)意義的 java 對象。
二、復(fù)雜Java對象
1??BO/DO bussiness object/Domain Object
業(yè)務(wù)對象、域?qū)ο?。封裝業(yè)務(wù)邏輯的 Java 對象,通過調(diào)用 DAO 方法,結(jié)合 PO,VO 進行業(yè)務(wù)操作。一個BO對象可以包括多個PO對象。如常見的工作簡歷例子為例,簡歷可以理解為一個BO,簡歷又包括工作經(jīng)歷,學(xué)習經(jīng)歷等,這些可以理解為一個個的PO,由多個PO組成BO。
2??DAO data access object
數(shù)據(jù)訪問對象。此對象用于訪問數(shù)據(jù)庫。通常和 PO 結(jié)合使用,DAO 中包含了各種數(shù)據(jù)庫的操作方法。通過它的方法,結(jié)合 PO 對數(shù)據(jù)庫進行相關(guān)的操作。夾在業(yè)務(wù)邏輯與數(shù)據(jù)庫資源中間。