循环依赖关系
回答
绝对不是。循环依赖关系表示设计不好。我不是故意要苛刻。有一些方法可以解决这个问题。
1)您可以重构公共代码到另一个项目,说项目#0
2)您可以修复你的设计,这可能是要走的路。
鲍伯叔叔在包装原则方面有一篇很好的文章,其中包括非循环依赖原则。 http://www.objectmentor.com/resources/articles/granularity.pdf。阅读这个知道为什么循环依赖是一件坏事。
一个常见的解决方法是依赖抽象如接口而不是具体实例,并将这些抽象移动到另一个程序集。但是,真的,想想你的项目结构和真正属于哪里。 – kyoryu 2010-02-14 20:42:53
对于链接的文章。我将一个包含“应用程序使用日志”类集和一个“错误日志记录”类的“Logger”软件包分成两个单独的软件包(大多数软件包不需要记录应用程序使用!),然后将WAS回到原来的圆形。回到DAG。应该被要求阅读所有。 – DFTR 2013-04-01 21:50:49
@kyoryu你在谈论他在文章中提到的依赖倒置原则(DIP)吗? - 我同意,你应该试着找出为什么存在循环依赖的可能性,并且可能在取决于抽象之前改变设计的元素(如果可以的话)。 – DFTR 2013-04-01 21:54:40
将两者合并或重新设计。
号码结构正确的项目。尝试使用某种基于抽象的排序 - 从低级到高级。
重构您的项目以将共同元素带入项目#1和项目#2引用的“项目#0”。
我真的并不意味着一个聪明,但更好的程序设计是答案。
循环依赖意味着这些不再是两个独立的项目(因为不可能只构建其中的一个)。
您需要重构,以便只有单向依赖关系,或者您应该将它们合并到单个项目中。
循环引用可以完成如在previous question见过,但你不应该做的原因,每个人都在这里已经提到它。
这似乎是一个设计缺陷,没有别的。重新设计是解决方案。
我不认为这是一个很好的解决方案,但我们仍然可以通过以下步骤
- 做添加引用
- 浏览和
- 去DLL项目的Debug文件夹,
- 找到.dll和Add。
不要那样做!遵循接受的答案中指出的内容! – 2013-03-29 14:02:06
- 1. SQL循环依赖关系
- 2. Hudson循环依赖关系
- 3. C++循环依赖关系
- 4. 循环依赖关系
- 5. 连接依赖关系时的循环依赖关系
- 6. PostgreSQL设计依赖关系树没有循环依赖关系
- 7. 依赖关系排序与循环依赖关系的检测
- 8. 解决Clojure循环依赖关系
- 9. SOA中的循环依赖关系
- 10. boost :: shared_ptr循环依赖关系
- 11. Python中的循环依赖关系
- 12. json_pure/rubygems循环依赖关系
- 13. Spring中的循环依赖关系
- 14. Android循环gradle依赖关系
- 15. 循环依赖关系 - 再次
- 16. 与ninject的循环依赖关系
- 17. 3NF中的循环依赖关系
- 18. 类之间的循环依赖关系
- 19. 类的循环依赖关系
- 20. 控制依赖关系树逻辑 - 查找循环依赖关系
- 21. 卡住了一对多关系的循环依赖关系
- 22. 依赖关系的nuget依赖关系
- 23. 循环依赖
- 24. 循环依赖
- 25. 循环依赖++
- 26. 循环依赖
- 27. 循环依赖
- 28. Scala系列中的循环依赖关系
- 29. 依赖关系
- 30. Maven循环依赖?
至少我们都同意我们的答案.. ;-)。 +1给所有人 – David 2010-01-12 21:39:01