紧密耦合是指一组类高度依赖彼此。
class C {
A a;
C(B b) {
a = b;
}
}
Interface A {
}
class B implements A {
}
在我的代码中,我通过类B的引用而不是父接口A接受类的对象。
我的代码是松散还是紧密耦合?
通过促进设计实现松耦合 单一责任和分离关注点。
使用父类或接口的引用使代码更灵活地采用任何子类的对象,但它如何促进单一责任。
松散耦合是否可以通过任何其他方式实现,而不是使用父类引用变量,在任何情况下都不是特定于我的代码?
答案 0 :(得分:5)
这感觉像家一样,但这是我的答案。
代码紧密耦合,因为C
的构造函数取决于B
而不是接口A
。如果您想将C
与B
分开,则可以接受A
而非B
的实例。
松散耦合代码
class C {
A a;
C(A a) {
this.a = a;
}
}
答案 1 :(得分:1)
<强> ANS1:强>
紧密耦合是指一组类高度依赖彼此。
您的代码紧密耦合,因为:
因为C的构造函数依赖于B,并且您将B的对象存储在类型A中。
<强> ANS2:强>
通过促进单一责任和关注点分离的设计实现松耦合。
接口是用于解耦的强大工具。类可以通过接口而不是其他具体类进行通信,只需通过实现接口,任何类都可以在该通信的另一端进行通信。
示例:
class C {
A a;
C(A b) { // use interface A rather Class B
a = b;
}
}