我理解这种低耦合高内聚的说法有问题。我在谷歌上搜索并阅读了很多这方面的内容,但还是觉得很难理解。
我的理解是,高内聚意味着,我们应该有专门执行特定功能的类。希望这是正确的?比如信用卡验证类,它专门用于验证信用卡。
还是不明白低耦合是什么意思?
我理解这种低耦合高内聚的说法有问题。我在谷歌上搜索并阅读了很多这方面的内容,但还是觉得很难理解。
我的理解是,高内聚意味着,我们应该有专门执行特定功能的类。希望这是正确的?比如信用卡验证类,它专门用于验证信用卡。
还是不明白低耦合是什么意思?
当前回答
打个比方,如果你的猫叫,它的凝聚力很差,如果你的狗需要一只猫在他身边叫,这是高度耦合的。
狗会叫,猫会呼噜,如果它们吐了,你的拉请求会被拒绝。
其他回答
继承或泛化是高耦合(即高度相互依赖)的一个例子。我这么说的意思是,在继承中,父类通常定义了它的子类使用的基本功能,父类方法的更改直接影响它的子类。因此,我们可以说,阶级之间有更大程度的相互依赖。
实现或使用接口是一个高内聚(即低相互依赖)的例子。这意味着接口为实现它的任何类提出了契约,但每个类都有权以自己的方式实现接口中声明的方法,并且一个类中声明的方法的更改不会影响任何其他类。
你有智能手机吗?有一个大的还是很多小的应用程序?一个应用程序是否会回复另一个应用程序?您可以在安装、更新和/或卸载另一个应用程序时使用一个应用程序吗?每个应用程序都是独立的,这是一种高内聚性。每个应用程序都独立于其他应用程序,这是低耦合。DevOps偏爱这种架构,因为这意味着您可以在不中断整个系统的情况下进行离散的连续部署。
在软件设计中,高内聚性意味着类应该做一件事,并且把一件事做得很好。高凝聚力与单一责任原则密切相关。
低耦合意味着类应该具有最少的依赖关系。而且,必须存在的依赖关系应该是弱依赖关系——喜欢对接口的依赖而不是对具体类的依赖,或者喜欢组合而不是继承。
高内聚和低耦合使我们能够更好地设计代码,从而更容易维护。
简短明了的回答
高内聚性:一个类/模块中的元素应该在功能上属于一起,并做一件特定的事情。 松耦合:不同的类/模块之间应该有最小的依赖关系。
低耦合和高内聚是一个值得推荐的现象。
耦合意味着各个模块相互依赖的程度,以及其他模块在改变模块的某些/相当大的功能时是如何受到影响的。低耦合被强调,因为依赖关系必须保持在较低的水平,以便对其他模块进行非常少的/可以忽略不计的更改。