Interface 依赖注入-松散耦合的代码-接口
我最近在设法控制DI。 如果到目前为止我对所有内容都理解正确,那么主要目的就是编写松散耦合的代码,以促进可重用性。 (另见) 到目前为止还不错,但有一件事我还不完全清楚,那就是接口应该放在哪里 一个例子讲述了一千多个单词: 图书馆A:Interface 依赖注入-松散耦合的代码-接口,interface,dependency-injection,Interface,Dependency Injection,我最近在设法控制DI。 如果到目前为止我对所有内容都理解正确,那么主要目的就是编写松散耦合的代码,以促进可重用性。 (另见) 到目前为止还不错,但有一件事我还不完全清楚,那就是接口应该放在哪里 一个例子讲述了一千多个单词: 图书馆A: public class A { public A(IInterfaceB b) {} } 图书馆B: public interface IInterfaceB {} public class B : IInterfaceB { pub
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???
至少在我看来,这似乎不是松散耦合的
有人能解释一下我的想法哪里出了问题吗
class A->IInterfaceB 1)解释了我的想法哪里出了问题,但如果模块仍然紧密耦合,我仍然不明白可重用性的概念从何而来。我考虑过2)但是把每个接口放在自己的dll中感觉不太对。你不应该把每个接口放在单独的dll中。你应该从层次的角度来思考。每个层都应该有自己的SomeLayer.Contracts.dll(带有接口、异常和数据传输对象)和SomeLayer.Implementation.dll(带有具体的intarface实现)。你可以在这里深入了解它-这有点意义:-)我想我必须在我的头脑中对这个DI东西做出一个改变,因为我必须在我的GUI中引用每个项目(其中[This]()帮助很大)。@OleksandrKobylianskyi-那个PDF链接死了*(