資料傳輸物件
在流程之間傳遞資料的物件,用以減少方法呼叫的次數。
完整說明請參閱 EAA 的 P 第 401 頁
當您使用遠端介面(例如遠端門面(388))時,每次呼叫都會耗費資源。因此,您需要減少呼叫次數,這表示您需要在每次呼叫中傳輸更多資料。執行此項操作的方法之一是使用大量參數。然而,這通常很難編寫程式碼,事實上,對於僅傳回單一值的語言(例如 Java)來說,這通常是不可能的。
解決方案是建立一個資料傳輸物件,它可以容納呼叫的所有資料。它需要可序列化才能跨連線傳輸。通常在伺服器端使用組譯器在 DTO 和任何網域物件之間傳輸資料。
Sun 社群中的許多人使用「值物件」一詞來表示此模式。我用它來表示其他意思。請參閱第 487 頁的討論。
雖然使用資料傳輸物件的主要原因是將多個遠端呼叫批次處理成單一呼叫,但值得一提的是,另一個優點是封裝序列化機制,以便透過網路傳輸資料。透過像這樣封裝序列化,DTO 會將此邏輯排除在其他程式碼之外,並提供一個明確的點來變更序列化(如果您願意)。
自從這本書出版以來,Sun/Java 社群的術語使用方式已有所改變。他們改用「傳輸物件」作為此模式的名稱。因此,「值物件」開始以我在本書中描述的方式定期使用。