处理循环依赖
回答
有上Restructure101如何用于去除循环依赖,“缠结”,从Junit的博客文章here从洛桑士它是如何用来从ICEfaces的去除缠结一个presentation。
至于关于循环依赖关系是否不好的争论,我建议您阅读Bob叔叔的Solid Principles。
声明:我为Headway Software为Restructure101的开发人员工作。
并不总是要避免循环依赖。我会避免他们在大,但保持在一个系统的小角落。在大型数据访问层和J2EE应用程序循环依赖的表示层中,我会说这是一件坏事,因为这意味着所有内容都必须一次性编译,并且测试是噩梦。但是,如果列表数据结构及其迭代器类型是循环依赖,那就没有问题了。
由于Findbugs建议使用接口来打破循环依赖。我为至少一种类型的圆引入了一个接口,并使其他类在各处都使用接口。你需要示例代码吗?
+1。凭借明确的优势,良好的设计方法是很好的。例如,在一个集合和它的(惰性)迭代器的特定情况下,简单地引入一个新的接口来打破这个循环是过度的。但是,我会争辩说:只有在可以将所有依赖关系都包含为内部或嵌套类的情况下,才使用循环依赖关系。事实上,通过以这种方式使用内部类,您可以通过使用内部类所保留的隐式容器引用来避免许多循环依赖性警报。 – 2011-10-05 16:30:31
通过使用内部类的隐式引用,您可以避免使用工具警告,但是您的代码仍然具有循环引用。但正如我所说,我建议尽可能减少圈子 - 不要不惜一切代价避免它们。通过使用内部类,你可以做到这一点。 – jmg 2011-10-06 08:21:21
- 1. C++如何处理循环依赖?
- 2. 处理对继承的循环依赖
- 3. 处理循环依赖关系
- 4. 在循环中处理顺序依赖
- 5. 循环依赖
- 6. 循环依赖
- 7. 循环依赖++
- 8. 循环依赖
- 9. 循环依赖
- 10. 循环依赖
- 11. 循环依赖C++
- 12. Autofac循环依赖
- 13. MVC - 循环依赖
- 14. Maven循环依赖?
- 15. Javascript循环依赖
- 16. C循环依赖
- 17. GraphQL循环依赖
- 18. 循环依赖angularjs
- 19. C2061 - 循环依赖
- 20. sqlalchemy循环依赖
- 21. 循环依赖QThread
- 22. Relativelayout循环依赖
- 23. Django循环依赖
- 24. ES6循环依赖
- 25. 环路与依赖循环
- 26. 循环依赖表的依赖顺序
- 27. 依赖注入解决循环依赖
- 28. Python相互依赖类(循环依赖)
- 29. 与依赖注入循环依赖
- 30. 依赖注入与循环依赖
循环引用首先出现了什么问题?你为什么想要打破它们?也许你应该在你的问题中指出这一点。 – Mecki 2011-03-30 17:59:06
好吧,我不知道...假设是我想避免的反模式!并为教育目的,检查不同的设计可能性。 – tropicana 2011-03-30 18:03:02
循环参考是一种反模式?谁说的? Java GC对于实例来说没有问题(只有使用纯引用计数的GC才会有这样的问题),编译器在编译时没有问题,除了必须同时编译两个类以外,所以编译器能够解决依赖关系。顺便说一句,你错过了一个重要的标签:java。我会为你修复标签。 – Mecki 2011-03-31 11:48:21