我最近试图处理DI。 如果到目前为止我理解了所有内容,主要目的是编写松散耦合的代码,以便于重用。 (另见https://stackoverflow.com/a/9503612/579740)
到目前为止一切顺利,但有一件事我还不完全清楚,就是在哪里放置接口。
一个例子讲述了超过一千个单词:
图书馆A:
public class A
{
public A(IInterfaceB b)
{}
}
图书馆B:
public interface IInterfaceB
{}
public class B : IInterfaceB
{
public B (IInterfaceC c)
{}
}
图书馆C:
public interface IInterfaceC
{}
public class C : IInterfaceC
{
public C()
{}
}
如果我将IInterfaceC放在C库中,我仍然可以参考图书馆B中的C库。 所以当我决定重用库B时,我仍然需要库C ??? 至少在我看来,它似乎没有松散耦合...
有人可以向我解释我的想法出错吗?
答案 0 :(得分:1)
看起来如下
class A -> IInterfaceB <- class B
所以包含A类和B类的模块没有耦合。