第14天來介紹在不同分層擁有特定職責的資料物件,試想定義一個方法時,必須在引用參數或回傳值設定參考型別,資料物件就是專門對這些用途,使用到的元件進行封裝的類別,透過這種分層模式,能有效防止重複類別的設計,確保資料處理的邏輯一致,能有效提升可維護性
DAO(Data Access Object) 與資料儲存系統交互的物件
這層資料主要負責「實現」資料存取的邏輯,為了實現開放封閉原則,通常會跟資料存取方法,利用Interface規範存取特定資料,要實現的抽象方法,,善用依賴注入來抽換實際存取資料的實例,這種做法使開發者在開發時只須關真實物件邏輯的調整,不會影響到終端使用者的既有程式碼,要注意的是,DAO偏向對低階元件行為的定義,比較常見的就是ORM物件,在底層JDBC(資料庫連線元件)進行封裝,實現不同的資料庫的操作切換
DTO(Data Transfer Object) 拿來寄給別人的包裹
如同字面上的意思「資料傳輸物件」,就是包裝好要丟給別人的資料,常被用來在不同分層往來傳遞的物件,比方當客戶端傳送到伺服器時,已經滿足不同層的條件,此時伺服器端接收到的物件格式,就可以視為DTO物件,在來當伺服器回傳資料時,也可以將拋給客戶端的資料設為DTO,透過這種設計在資料取得會送出時,針對發送的資料進行檢查,確保重要資訊不會外洩,或遭到惡意修改
VO(Value Object) 就是擔任數值的物件
值物件固定思義就是數值物件,與其他資料物件最大不同的差異在於,屬於實際數值不可變動的物件,因此封裝時必須透過 gatter方法取得實際值,當然也可針對實際情況,在不變動原始資料的前提下,定義一個方法專門用來「顯示」不同單位的資料,比較常見的場景在度量單位換算,例如顯示不同日期單位、貨幣換算,這種特性使值物件常用在,需要保護初始值的場景
參考: