所以說我有甲級,乙級和丙級。甲級有一個單一的責任,但需要從乙類和丙級功能,所以起初我想讓甲從乙和丙繼承,然後通過遵循「繼承「原則,使AI的B和C成員可以降低設計的剛性,並使這兩個類更具可重用性。依賴注入如何幫助對象組合?
起初B和C只需要在A的構造函數中實例化,但最終他們有方法需要在兩三個其他地方調用 - 因爲我正在其他地方重用這些類,所以我忘記調用其中的一些正確的方法會產生很多不必要的缺陷和時間浪費......我的問題是依賴注入是否有助於解決這個問題,它是否有助於減少使用組合的複雜性,如果是這樣,如何呢?
public class A
{
private mB;
private mC;
public A(IB b, IC c)
{
mB = b;
mC = c;
}
public MethodX()
{
mB.DoWhatever();
}
public MethodY()
{
mC.DoSomething();
}
}
從我的理解DI會讓我配置了哪些具體類IB和IC獲得通過構造函數把這樣和處理其creation-但怎麼回事會幫助它(複雜性方面)?
我決定問基於不理解這篇文章這樣一個問題:http://lostechies.com/chadmyers/2010/02/13/composition-versus-inheritance/
對於現實生活中的例子,說我有一個包含有當國家要求註冊其事件的事件監聽類State類的Begin方法,當它調用End方法時取消註冊。
這個問題可能更適合在代碼評審。 http://codereview.stackexchange.com。這聽起來像你需要使用接口以及具有虛擬方法的抽象基類,以便您可以覆蓋它們並提供默認實現。 – 2012-08-14 03:12:24
[codereview.se]或[programmers.se],任一。無論如何,不在這裏。 – 2012-08-14 03:48:06