對象定義
- AO(Application Object) :應用對象。在 Web 層與 Service 層之間抽象的復用對象模型,極為貼近展示層,復用度不高。
- BO(Business Object) :業務對象。由 Service 層輸出的封裝業務邏輯的對象。業務對象主要作用是把業務邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。比如一個簡歷,有教育經歷、工作經歷、社會關系等等。我們可以把教育經歷對應一個PO,工作經歷對應一個PO,社會關系對應一個PO。建立一個對應簡歷的BO對象處理簡歷,每個BO包含這些PO。這樣處理業務邏輯時,我們就可以針對BO去處理。
- DO(Data Object) :與數據庫表結構一一對應,通過 DAO 層向上傳輸數據源對象。
- DO(Domain Object)領域對象 就是從現實世界中抽象出來的有形或無形的業務實體。一般和數據中的表結構對應。
- DAO(Data Access Object ):數據訪問對象——同時還有DAO模式 數據訪問對象這個大家最熟悉,和上面幾個O區別最大,基本沒有互相轉化的可能性和必要.主要用來封裝對數據庫的訪問。通常和PO結合使用,DAO中包含了各種數據庫的操作方法。它可以把POJO持久化為PO,用PO組裝出來VO、DTO
- DTO(Data Transfer Object):數據傳輸對象——同時還有DTO模式 DTO(Data Transfer Object) :數據傳輸對象, Service 或 Manager 向外傳輸的對象。數據傳輸對象主要用於遠程調用等需要大量傳輸對象的地方。比如我們一張表有100個字段,那么對應的PO就有100個屬性。但是我們界面上只要顯示10個字段,客戶端用WEB service來獲取數據,沒有必要把整個PO對象傳遞到客戶端,這時我們就可以用只有這10個屬性的DTO來傳遞結果到客戶端,這樣也不會暴露服務端表結構.到達客戶端以后,如果用這個對象來對應界面顯示,那此時它的身份就轉為VO。
- O/R Mapping (Object Relational Mapping):是對象關系映射的縮寫。通俗點講,就是將對象與關系數據庫綁定,用對象來表示關系數據。在O/R Mapping的世界里,有兩個基本的也是重要的東東需要了解,即VO,PO。它們的關系應該是相互獨立的,一個VO可以只是PO的部分,也可以是多個PO構成,同樣也可以等同於一個PO(指的是他們的屬性)。這樣,PO獨立出來,數據持久層也就獨立出來了,它不會受到任何業務的干涉,業務邏輯層也獨立開來,它不會受到數據持久層的影響,業務層關心的只是業務邏輯的處理,不過,如果我們沒有使用數據持久層,或者說沒有使用hibernate,那么PO和VO也可以是同一個東西,雖然這並不好。
- PO(Persistant Object):全稱是持久對象,最形象的理解就是一個PO就是數據庫中的一條記錄。好處是可以把一條記錄作為一個對象處理,可以方便的轉為其它對象。
- POJO (Plain Ordinary Java Object ):簡單java對象個人感覺POJO是最常見最多變的對象,是一個中間對象,也是我們最常打交道的對象。一個POJO持久化以后就是PO直接用它傳遞、傳遞過程中就是DTO直接用來對應表示層就是VO
- QO(Query Object):數據查詢對象,各層接收上層的查詢請求。注意超過 2 個參數的查詢封裝,禁止使用 Map 類來傳輸。
- TO(Transfer Object):數據傳輸對象,在應用程序不同關系之間傳輸的對象。
- VO(View Object) :視圖對象 :顯示層對象,通常是 Web 向模板渲染引擎層傳輸的對象。
- VO(value object):值對象。通常用於業務層之間的數據傳遞,和PO一樣也是僅僅包含數據而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要。從前端獲取信息用作后端的查詢條件。
常用包名
- bean:存放實體類文件
- entity:存放實體類文件
- pojo:存放實體類文件
- model:存放模型類文件
- dataobject:存放數據源對象類文件
- domain:存放領域對象文件
- dto:存放數據傳輸對象文件
- conn:建立了一個數據庫連接對象,其他所有涉及到數據庫操作的文件都需要包含這個文件並引用該對象。
- dao:存放數據層文件
- repository:和dao層類似,在使用spring data jpa時的常用包名
- mapper:和dao層類似,在使用Mybatis時的常用包名
- service:存放服務層文件
- action:存放服務層文件(在ssh中常用包名)
- manager:存放服務層文件(針對第三方的)
- spi:存放服務層文件(英文Service Provider Interface的縮寫。中文意思是服務提供商接口。滿足某種服務標准的供應商提供的符合該標准的應用程序接口,SPI應該和該服務的API標准是兼容的,應用程序一般應該是基於API編寫,除非是SPI中包含API中沒有提供的功能而又必須使用。)
- controller:存放控制層文件
- web:存放控制層文件
- api:存放控制層文件(web api)
- config:存放配置類文件
- enums:存放枚舉類文件
- constant:存放定義常量的文件
- exception:存放異常類文件
- job:存放任務類文件
- utils:存放工具類文件
- tools:存放工具類文件
- aspect:存放切面類文件
- converter:存放轉換器文件
- interceptor:存放攔截器文件
- form:
- handler:
以上來自網絡搜集整理,如有異議可以相互交流。