【发布时间】:2013-12-25 02:31:37
【问题描述】:
我对 java 中的松耦合和紧耦合有些混淆。我知道松耦合意味着彼此之间的信息最少,紧耦合意味着依赖。我们知道松耦合可以通过接口实现和继承实现紧耦合。
例如:
1) A(接口)
2) C (类)
假设这四个类是我整个应用程序的一部分,在 B 或 D 中进行更改不会对应用程序产生任何影响(从运行的角度来看)。从 A 或 C 中删除任何方法或变量需要对应用程序进行如此多的更改。好的分数是 2-2,但是在 C 或 A 中添加新方法是不同的。如果我在 C 中添加新方法不会影响应用程序,但在添加 A 时,至少我必须在 B 和所有实现接口 A 的类中重写此方法。所以至少在这种情况下它是如何松耦合的。 我的疑问是,继承是否总是紧密耦合。我了解到继承是 OOP 的强大工具之一。用于设计一个类是否遵循“是一种关系”然后使用继承。 松耦合意味着彼此之间的信息更少。 A 和 C 都不知道将来要实现或扩展哪个类,但是在添加 B 和 D 之后,现在 B 不再依赖 A,因为它的所有方法都是抽象的,但 D 也可以覆盖继承特性。
【问题讨论】:
-
您的图表表示“B 实现 A”和“D 扩展 C”?
-
需要注意的是,“松”和“紧”是相对术语。这不是一个或另一个,而是极端之间的大量灰色区域。