2010-11-01 71 views
3

目前爲了克隆我的DTO,我實現了IClonable,但是這個(以及像克隆ctor這樣的選擇)意味着我需要將實現邏輯添加到我的(否則)數據專用對象中。在C中克隆DTO#

有沒有更好的方法來克隆DTO,或者是否包含被認爲可以克隆的克隆邏輯?

+0

http://stackoverflow.com/questions/536349/why-no-icloneablet – 2010-11-01 01:18:30

+1

「ICloneable現在被認爲是一個糟糕的API,因爲它沒有指定結果是深層還是淺層拷貝」 – 2010-11-01 01:18:53

+0

爲什麼克隆DTO在所有?不應該有必要。 – 2010-11-02 18:54:58

回答

3

這樣的邏輯是如此的基本,我認爲它擴展它叫做實現邏輯。它可能只是讓更多的意義在這種方式克隆:

  1. 你能夠調用MemberwiseClone作出淺拷貝
  2. 的DTO知道它需要克隆自己的一切
  3. 你不會必須爲這個或幫助者創建單獨的對象,這取決於反射

不將克隆邏輯添加到DTO中,我會成爲以下架構模式的一個明顯例子。

+0

謝謝 - 這幾乎是我所看到的觀點,但我對使用DTO比較陌生,並且想確保我沒有做一些愚蠢的事情 – 2010-11-01 01:24:54