【问题标题】:Java: Is it bad practice to have a circular dependency within the same package? [closed]Java:在同一个包中有循环依赖是不好的做法吗? [关闭]
【发布时间】:2016-04-28 01:49:11
【问题描述】:

在同一个 Java 包中的类之间存在循环依赖是不好的做法吗?

如果没有,我希望有一个可靠的参考,参考某处这样说的指南。

【问题讨论】:

标签: java oop circular-dependency


【解决方案1】:

就其本身而言,循环依赖不是问题。然而,他们所指出的——紧密耦合——通常可能是一个问题。本质上,通过紧密耦合两个类,您接受了一个类的更改可能会导致另一个类的更改。如果这两个类有不同的职责,这可能是一个问题 - 实际上,通过将它们紧密耦合,您是在说它们分担职责,因此违反了Single Responsibility Principle

如果您在同一个包中的两个类之间存在循环依赖关系,那么有一些直接的问题需要回答:

  • 为什么不将它们合并到一个类中?

  • 为什么不让一个成为另一个的内部类?

  • 为什么不通过明智地使用接口来解耦它们?

  • 还有其他更有意义的类设计吗?

紧密耦合的课程越远,这些问题和其他问题的紧迫性就越大。部分是关于类在包方面的接近程度——在同一个工件的同一个包内,比在同一个工件的不同包之间更受关注。但是,如果它们的类位于不同的 artfacts(即 jars)中但在同一个包中,那么它们不应该紧密耦合,因为这可能导致客户端无法独立升级库依赖版本。

对于该主题的“有信誉”的参考资料,您可能比 Bob Martin 的《敏捷软件开发》一书做得更差。

【讨论】:

    猜你喜欢
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2018-09-30
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多