为什么一个对象引用另一个引用第一个对象的对象是一个糟糕的设计?
之间的循环依赖关系classes不一定有害。事实上,在某些情况下它们是可取的。例如,如果您的应用程序处理宠物及其主人,您会期望 Pet 类有一个方法来获取宠物的主人,并且 Owner 类有一个返回宠物列表的方法。当然,这会使内存管理变得更加困难(在非 GC 语言中)。但如果循环性是问题所固有的,那么试图摆脱它可能会导致更多问题。
另一方面,循环依赖关系modules是有害的。它通常表明模块结构考虑不周,和/或未能坚持原始模块化。一般来说,具有不受控制的交叉依赖关系的代码库比具有干净的分层模块结构的代码库更难理解和维护。如果没有合适的模块,预测变更的影响可能会困难得多。这使得维护变得更加困难,并导致由于考虑不周的修补而导致“代码衰减”。
(此外,像 Maven 这样的构建工具不会处理具有循环依赖关系的模块(工件)。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)