和高手過招,專業知識不能少。這裡解釋一下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”都有不同的用途,目的就是為了更好的封裝自己的服務及有效的控制資料的傳播。
最新評論