2011-10-26 51 views
0

我正在嘗試將一些DDD樣式的模式應用到我編寫的代碼中,以此作爲如何編寫好代碼的示例。我們已經有了一大堆表示域對象的類,但是大多數類都「知道得太多」,並且在它們中散佈着邏輯,getters/setter和數據訪問(以無類型的DataSet形式)。當遵循類似DDD的風格時,可以複製具有略微不同屬性的現有「實體」嗎?

對於這部分應用程序,我需要使用相同的域對象,但返回的數據的一小部分使得使用「胖」對象變得笨重(例如讓我們說「胖」對象具有20個屬性和方法,我只聽取了這部分的7個屬性)。僅僅使用我需要的屬性創建一個具有相同名稱的精簡DTO樣式對象(當然在不同的命名空間/包中)是否可以接受?我似乎記得,這在DDD世界中是一種很好的做法,但我記不起來了(我記得有關有限環境的事情),而且我討厭污染我的設計。

回答

2

我會在這裏警惕它是什麼,你試圖實現。因爲它是真正的域驅動,你的實體應該有豐富的功能,而不是一個"anemic" domain model

所以,如果你發現自己在「你需要使用相同的域對象,但有一小部分屬性」的情況下,在這種情況下究竟使用的是域對象。

它只是作爲一個DTO使用,並被交給其他包含實際功能的管理器類。

如果是這種情況,您可能需要重新審視您的設計,以確定它是否真正由域驅動。

相關問題