java - 低耦合理论与现实
问题描述
耦合被定义为一个对象对另一个对象的了解,它描述了它们的依赖程度。越依赖,越糟糕,因为其中一个的变化会影响到第二个。有不同的耦合类型:
http://www.principles-wiki.net/principles:low_coupling
假设我们谈论调用耦合。
在 Java 中,当 A 创建一个对象 B 并调用其方法之一时,它被称为紧密耦合。但是,如果我们创建一个接口 IB,从 B 实现 IB 的 A 中使用,则据说它是松散耦合的。我不明白为什么,因为界面中的一次更改会对 A 和 B 产生影响。B 中的一次更改会对 IB 和 A 产生影响。它们似乎仍然依赖于调用。
同样的原理也适用于 Facade GoF 设计模式。据说它促进了低耦合,因为我们在子系统和客户端代码之间放置了一个中介。在这种情况下,看起来我们将问题从客户端代码转移到了 Facade。由于子系统中的更改会影响外观而不是客户端代码。客户端代码不再与子系统耦合,但外观是。
我看不出耦合是如何减少的。
解决方案
推荐阅读
- css - CSS 集中元素
- java - Unity Android 方向变化动画显示最后的方向快照
- c# - 如何从 JsonNet 序列化 DateTimeOffset?
- ruby-on-rails - 如何防止工作每小时发送邮件超过一次?
- reactjs - Webpack:跨 html 页面的捆绑拆分与跨客户端路由的代码拆分
- php - 如何在作曲家中丢弃缓存中的负载
- eclipse - Eclipse 4.4 在 MacOS 上意外退出 - 从终端运行时有效
- xml - 在 XML 中,如何/为什么在定义名称空间之前使用它?
- ios - 在IOS中使用NSPredicate通过数组的一个元素过滤数组的NSArray
- python - 如何使用变量字符串数据在python中动态创建列表字典