【问题标题】:Coupling and dependencies clarification耦合和依赖关系说明
【发布时间】:2014-02-11 00:30:56
【问题描述】:

我目前正在学习 Java 中的耦合和依赖关系。我一直在阅读 this tutorial 并了解如果 class1 包含 class2 的实例并且如果您调用像 exampleMethod(c2) 这样的方法,这将被视为 class1 和 class2 之间的依赖关系。但是,我不确定下面的示例。谁能给我一些澄清?

假设我们在 class1 内部(其中包含 class2 c2):

  1. 如果 class1 调用 class2 中定义的方法(例如c2.aMethod()),这算作 class1 和 class2 之间的依赖/耦合吗?

  2. 调用c2.someSetterMethod(argument) 算作class1 和class2 之间的依赖/耦合吗?

  3. 在 class1 中调用 c2.repaint() 算作依赖吗?

【问题讨论】:

    标签: java dependencies coupling


    【解决方案1】:

    class1 包含对class2 实例的引用这一事实足以说明class1 依赖于 class2。在所有 3 个示例中,您需要引用 class2 才能调用其方法。这只会增加您的 class1 中对依赖项的需求,但不会增加依赖项本身。

    请阅读http://depfind.sourceforge.net/Manual.html#Dependencies,正如我对您上一个问题的回答中提到的那样:https://stackoverflow.com/a/21689495/1659599

    【讨论】:

      【解决方案2】:
      1. 是的。
      2. 是的。
      3. 是的。

      减少耦合的一种方法是使用接口。这样,class 1 只知道接口,并不专门与 class 2 耦合。事实上,任何实现该接口的类都可以用来代替类 2,并且仍然可以满足类 1。

      【讨论】:

        猜你喜欢
        • 2014-03-15
        • 1970-01-01
        • 2013-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 2018-07-04
        相关资源
        最近更新 更多