POJO
- 全稱為:Plain Ordinary Java Object,普通的 java 對象,一般用在數據層映射到數據庫表的類,類的屬性與表字段一一對應
PO
- 全稱為:Persistant Object,持久化對象,與數據庫結構映射的實體,數據庫中的一條數據即為一個 BO 對象
BO
- 全稱為:Business Object,業務對象,主要作用是把業務邏輯封裝成一個對象,這個對象可以包括一個或多個其它對象,比如一個簡歷 BO 中有教育經歷,工作經歷,社會關系等 PO 對象
DTO
- 全稱為:Data Transfer Object,數據傳輸對象,比如一張表有 100 個字段,那么對應的 PO 就有100 個屬性(大多數情況下,DTO內部的數據結構來自多個表)但 view 層只需要顯示 10 個字段,沒有必要把整個 PO 對象傳遞到 client,這時我們就可以用只有這 10 個屬性的 DTO 來傳輸給 client,這樣也不會暴露 server 端表結構,到達客戶端后,如果這個對象來對應頁面顯示,它的身份就轉為 VO
VO
- 全稱為:View Object,主要對應頁面展示的數據對象,一般繼承自 PO,可以添加 PO 中沒有的字段,用來邏輯處理以及其它消息存儲
DO
- 全稱為:Domain Object,領域對象,從現實世界中抽象出的業務實體,一般還包含 ORM 映射
DAO
- 全稱為:Data Access Object,數據訪問對象,一般所說的 DAO 層,用于連接數據庫與外層之間的橋梁,并持久化數據層對象
JavaBean
- JavaBean 是一種 Java 語言寫成的可重用組建,它的規范必須符合特定的約定:
- 這個類必須有一個公共的缺省構造函數
- 這個類的屬性用 getter 和 setter 訪問
- 這個類可被序列化
模型
- 用戶發出請求,表單的數據層被匹配為 VO
- 展示層把 VO 轉換為服務層對應方法鎖要求的 DTO,傳輸給服務層
- 服務層首先根據 DTO 的數據構造一個 DO,調用 DO 的業務方法完成具體業務
- 服務層把 DO 轉換為持久層對應的 PO,調用持久層持久化方法,把 PO 傳遞給它完成持久化操作