我只是在閱讀敏感原理,模式和實踐在C#由R.馬丁和M.馬丁,他們建議在他們的書,保持所有的接口在一個單獨的項目,例如。 接口。組織接口
舉個例子,如果我有一個桂項目,包含我所有的自定義GUI類,我將保持其接口在接口項目。具體來說,我有一個在桂 CustomButton類,我會保持在接口 ICustomButton接口。
的優點是,這需要一個ICustomButton任何類並不需要,但只對重量輕得多接口項目桂本身的參考。
此外,應在桂項目變更一類,從而導致它被重建,只有項目直接參照的CustomButton需要重新編譯,而那些指ICustomButton可能會保持不變。
我理解的概念,但看問題:
可以說我有這個接口:
public interface ICustomButton
{
void Animate(AnimatorStrategy strategy);
}
正如你所看到的,它是指AnimatorStrategy,這是一個具體的類,因此將坐在不同的項目,讓我們打電話動畫。 現在界面工程需要參考動畫。另一方面,如果動畫使用在接口中定義的接口,則需要參考它。
循環依賴 - 「我們來了」。
對於這個問題,我看到的唯一解決方案是,接口中定義的所有方法都接受本身爲接口的輸入。試圖實現這一點,很可能會產生多米諾骨牌效應,並且很快需要一個接口來實現即使是最基本的類。
我不知道我是否願意在開發中處理這種開銷。
有什麼建議嗎?
這有什麼關係? O_o – 2009-07-16 13:49:57
這是一個好主意,但看起來更像是對我的破解。接口在那裏拼出契約。 T如何闡明期望的策略?如果我有可以註冊,我不需要T. – 2009-07-16 14:39:48