Software Design - Pattern - Data Transfer Object (DTO)
什麼是 DTO?
Data Transfer Object (數據傳輸對象) 是定義如何在應用程序之間發送數據的對象。它僅用於發送和接收數據,本身不包含任何業務邏輯。
為什麼使用 DTO?
輕鬆收發
在沒有任何邏輯的基礎上,可以僅使用序列化與反序列化就保證對象的完整性和可傳遞性。
避免過度暴露訊息
對分層或模組來說,彼此間應盡量降低耦合。下圖以公園廁所報修為案例。
這個資料流由鄉公所傳到基層人員手上,中間經過兩個邊界
- 鄉公所 | 工程公司 => DTO (公文)
- 工程公司 | 基層人員 => DTO (簡訊)
每個單位的關注點不同,在意的資料也會不同,DTO 做為邊界兩方做最小程度的媒介,隱藏的不該被關注(敏感)的事
- 印章對工程公司並不是必要資訊
- 詳細的時間格式是對基層人員並不是必要資訊
在實作上常被用於轉換 DomainModol -> DomainDto
注意事項
類別數量增加,請自行評估使用情形