0

紧耦合是指一组类相互高度依赖。

class C {
    A a;

    C(B b) {
      a = b;
    }
}

Interface A {
}

class B implements A {
}

在我的代码中,我通过引用类 B 而不是父接口 A 来接受类的对象。

  1. 我的代码是松耦合还是紧耦合?

    松散耦合是通过促进单一职责和关注点分离的设计实现的。

  2. 使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一职责。

  3. 是否可以通过任何其他方式而不是使用父类引用变量来实现松散耦合,在任何情况下都不是专门在我的代码中?

4

2 回答 2

5

这感觉像是功课,但这是我的答案。

代码是紧密耦合的,因为构造函数C依赖于B而不是接口A。如果您想与 分离CB您将接受一个实例A而不是B

松耦合代码

class C {
    A a;

    C(A a) {
      this.a = a;
    }
}
于 2015-05-13T11:40:40.937 回答
1

答案1:

紧耦合是指一组类相互高度依赖。

您的代码是紧耦合的,因为:

因为 C 的构造函数依赖于 B,并且您将 B 的对象存储在类型 A 中。

答案2:

松散耦合是通过促进单一职责和关注点分离的设计实现的。

接口是用于解耦的强大工具。类可以通过接口而不是其他具体类进行通信,并且任何类都可以在通信的另一端,只需实现接口即可。

例子:

class C {
    A a;

    C(A b) { // use interface A rather Class B
      a = b;
    }
}
于 2015-05-13T11:43:09.203 回答