我觉得循环依赖(又称循环引用)意味着糟糕的设计并损害项目。我怎样才能说服我的队友和我的经理?
我的项目是依赖性混乱。有没有一种方法可以摆脱错误的依赖关系,然后保持清晰度?
为什么循环依赖(CiD)不好?
两个原因:
有没有好的CiD?
某些CiD有效,有用,并且不会影响可维护性或可靠性:字符串和对象,文件和文件夹,节点和边缘。通常,这样的圆圈位于一个包中,并且不会影响包之间的循环依赖性。
如何检测包CiD?
您可以在依赖关系图上直观地检测CiD(请参阅上面的生成工具的链接)。
如果您的项目很大或者您想要连续观察CiD,那么实现一个使用反射来检测CiD的工具很简单(遍历类或包深度优先并在第一个返回参考处停止)。
注意,如果一个包在其他包中声明,这并不意味着它们相互依赖,除非它们的类相互引用。
我的项目是依赖性混乱。有没有一种方法来解决它?
如何在项目中保持清晰度?
如果你有一个小团队和一个小项目,只需向你的队友解释规则,偶尔检查图表。
如果项目很大且很复杂,那么每当有人编译或检查错误的依赖项时,您应该建立一个接收警报或拒绝的过程。
首先,当您的项目如此简单时,没有反模式设计可能会产生问题,并且确实使事情变得更容易。它只会在项目变得复杂时出现问题。选择平衡点和右边是设计的一部分。说服某人总是需要一个真正的错误。
简而言之,要处理循环依赖关系,您总是需要将其与多任务分开。例如:enter image description here
原则是使每个单元专注于其核心业务或服务。如果你有一个圈子有时意味着你建立一个多核业务的单位。但实际上总是有更多的矿工周期,因为真正的业务流程就像这样。当它与单元的核心无关时,它是可以的。
顺便说一句,有人可以帮我内联图片吗?谢谢。