首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用依赖注入解决循环依赖关系

用依赖注入解决循环依赖关系
EN

Stack Overflow用户
提问于 2009-09-20 13:16:19
回答 4查看 20K关注 0票数 12

我在各种网站上看到过几篇文章,这些文章建议使用依赖注入来解决.NET程序集之间的循环依赖关系。这可能解决构建错误,但实际上并不能解决循环依赖,对吗?在我看来,架构中似乎仍然存在逻辑错误。我是疯了还是别人同意了?

  1. 这是一种不太占星术的DI?
  2. 不是解决循环依赖问题的适当方法吗?
EN

回答 4

Stack Overflow用户

发布于 2009-09-20 13:33:02

如果两个对象之间存在循环依赖关系,则意味着需要第三个对象,这两个对象将依赖该对象,因此它们不会相互依赖。这里有一篇文章是您问题的确切解决方案:

http://misko.hevery.com/2008/08/01/circular-dependency-in-constructors-and-dependency-injection/

票数 34
EN

Stack Overflow用户

发布于 2010-01-07 11:06:40

  1. 是的,通过使用额外的抽象层来检测它们会变得更加困难。
  2. 您绝对不解决循环依赖,而是通过添加额外的抽象层来隐藏它,使用后期边界或/和松散耦合它。

同样的答案返回了下面的文章(我将添加引用),即创建了第三个类,两者都依赖于。这意味着:违反了的单一责任原则。通过在单独的类中移动(提取)两个类所依赖的责任,您将删除循环依赖项。

维基百科的单一责任模式

其他人的StackOverflow讨论:

我的回答 on StackOverflow,并给出了一个在单独类中提取责任的示例。

票数 10
EN

Stack Overflow用户

发布于 2009-09-20 13:22:30

DI不是用于循环依赖解决,而是为了便利创建良好解耦的组件,从而实现更易于测试的组件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1450997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档