首頁>技術>

和高手過招,專業知識不能少。這裡解釋一下PO、VO、BO、DTO、POJO、DAO這幾個“O”都是什麼意思,先來看個圖吧!

PO(Persistant Object)-持久物件

一個PO對應資料庫表中的一條記錄,等同於entity,一般PO僅用於表示資料,除了擁有get、set方法,沒有操作資料的方法。

BO(business object)-業務物件

BO可以看成是PO的組合,例如:一個訂單會有商品PO、購買人PO等,可以建立一個BO處理訂單資訊。這樣處理業務邏輯時就可以針對BO來處理,對外就不會暴露資料表結構了。可以根據實際需要把業務處理方法放在BO裡面。

VO(value object /view object)-值物件/表現層物件

主要對應前臺頁面顯示的資料物件,例如常見的json。

DTO(Data Transfer Object)-資料傳輸物件

跨層級或者跨程序傳輸時用到的物件,例如微服務中服務於服務之間的呼叫傳輸的物件就是DTO。DTO和VO的比較相似但是還是有些差異,這些主要體現在設計上或對業務的解釋上,例如:同一個gender屬性,DTO中的值可能是“1”,VO為了更好理解則會轉化為“男”。

DAO(data access object)-資料訪問物件

用來訪問資料庫,封裝對資料庫的增刪改查操作,PO一起使用。

POJO(plain ordinary java object)-簡單Java物件

可以理解為最常用到的Java Bean,PO、VO、DTO都是典型的POJO,它是一箇中間物件可以轉化為PO、DTO、VO。

不同型別的“O”在不同的架構層級中扮演不同的角色,每種“O”都有不同的用途,目的就是為了更好的封裝自己的服務及有效的控制資料的傳播。

18
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 併發的volatile、synchronized和lock