嗯,我過去曾經使用過ServiceStack ORMLite,現在試着用我的手來處理ServiceStack RESTful DTO模式。我過去曾經使用過WCF/Web API,對於使用不同方法的服務來說,這是一種自然的範例,您只需在需要時就發起RPC調用。然而,一邊唸叨Servicestack的DTO模式,它主打的說法:服務堆棧的DTO模式真的有用嗎?
當你和一個遠程接口的工作,如遠程門面 (388),每次調用它是昂貴的。因此,您需要減少呼叫數量,這意味着您需要在每次呼叫時傳輸更多的 數據。一種方法是使用大量參數。 但是,這對程序來說通常很尷尬 - 實際上,對於只返回單個 值的Java等語言而言,這通常是不可能的。
解決的辦法是創建一個數據傳輸對象,該數據傳輸對象可以容納呼叫的所有 數據。它需要可序列化以穿過 連接。在DTO和任何域對象之間,通常在服務器端使用匯編器來傳輸數據到 。
參數本身迴避了很多問題要問我:
- 這是否意味着當與產品對象有關係的頁面加載,然後我們就從產品的錶帶上的所有數據,並保持周圍對於任何重複使用(潛在的重複使用)?
- 如果一個電話得到所有結果是很多數據?我是否可以不爭辯說,有時當一個調用中的「GetAll」帶來大量不必要的數據,然後在需要時返回服務器是一個更好的主意?
- 另外,聽起來這個模式假設客戶端開發人員會利用它作爲DTO模式。該服務將被調用一次,並且返回的數據將長時間保存在內存中以供進一步重用。如果我是一個糟糕的開發人員,並且完全忽視這樣一個事實,即該服務被設計用於大量重用,並且每次需要任何數據時都會致電服務。那不就是兩刃劍嗎?
謝謝您一如既往的全面解答。 – TeaLeave