2010-11-08 49 views
1

例如:link邊界類可以與實體類交互嗎?

是上面的好,或者它會更好地創建控制器的更多方法來處理,而不UI和實體之間的交互檢索所發送的數據/?

一般情況下,它是否允許(如果是)邊界類與實體類交互?

回答

0

取決於你是否想/需要宗教堅持邊界控制實體模式:

  • 如果是(你需要堅持模式):則沒有,邊界對象只能與控制對象通話。請參閱this page底部的表格(對模式也有很好的描述)。
  • 如果否:那麼是的,它可以!

這並不意味着會變得滑稽。這種嚴格的分離是否是良好的設計實踐是值得懷疑的。它在圖片中看起來不錯:邊界,控制和實體在漂亮的水平層中,消息僅通過相鄰層。

現實情況很不一樣。嚴格的分離會導致兩個問題:

  1. 傳遞方法氾濫。你提到這一點。您最終將控制器上的方法合併起來,只會傳遞給底層實體。
  2. 貧血的實體類。這些實體不是數據+行爲的主體,而是隻有將所有行爲遷移到控制器時才成爲數據容器。那是not a good thing

這是值得注意的是,在Domain Driven Design,Eric Evans的建議創建服務(類似於控制器)僅當有問題的邏輯沒有一個可行的家中任何域類(實體)的。

+0

非常感謝!現在有些事情對我來說更加清楚。 – antiauthor 2010-11-08 14:25:29