我在各种网站上看到过几篇文章,这些文章建议使用依赖注入来解决.NET程序集之间的循环依赖关系。这可能解决构建错误,但实际上并不能解决循环依赖,对吗?在我看来,架构中似乎仍然存在逻辑错误。我是疯了还是别人同意了?
发布于 2009-09-20 13:33:02
如果两个对象之间存在循环依赖关系,则意味着需要第三个对象,这两个对象将依赖该对象,因此它们不会相互依赖。这里有一篇文章是您问题的确切解决方案:
http://misko.hevery.com/2008/08/01/circular-dependency-in-constructors-and-dependency-injection/
发布于 2010-01-07 11:06:40
同样的答案返回了下面的文章(我将添加引用),即创建了第三个类,两者都依赖于。这意味着:违反了的单一责任原则。通过在单独的类中移动(提取)两个类所依赖的责任,您将删除循环依赖项。
维基百科的单一责任模式
其他人的StackOverflow讨论:
我的回答 on StackOverflow,并给出了一个在单独类中提取责任的示例。
发布于 2009-09-20 13:22:30
DI不是用于循环依赖解决,而是为了便利创建良好解耦的组件,从而实现更易于测试的组件。
https://stackoverflow.com/questions/1450997
复制相似问题