我理解这种低耦合高内聚的说法有问题。我在谷歌上搜索并阅读了很多这方面的内容,但还是觉得很难理解。
我的理解是,高内聚意味着,我们应该有专门执行特定功能的类。希望这是正确的?比如信用卡验证类,它专门用于验证信用卡。
还是不明白低耦合是什么意思?
我理解这种低耦合高内聚的说法有问题。我在谷歌上搜索并阅读了很多这方面的内容,但还是觉得很难理解。
我的理解是,高内聚意味着,我们应该有专门执行特定功能的类。希望这是正确的?比如信用卡验证类,它专门用于验证信用卡。
还是不明白低耦合是什么意思?
当前回答
低耦合和高内聚是一个值得推荐的现象。
耦合意味着各个模块相互依赖的程度,以及其他模块在改变模块的某些/相当大的功能时是如何受到影响的。低耦合被强调,因为依赖关系必须保持在较低的水平,以便对其他模块进行非常少的/可以忽略不计的更改。
其他回答
我想你们已经有了很多定义,但如果你们仍然有疑问,或者如果你们是编程新手,想深入了解这个问题,那么我建议你们看这个视频, https://youtu.be/HpJTGW9AwX0 这只是一个参考,以获得更多关于多态性的信息… 希望你能更好地理解这一点
以旧的PC主板为例。
鼠标有自己的PS/2端口。 打印机有自己的打印机端口。 显示器有自己的VGA端口。
这意味着特定的端口只能用于特定的设备,而不能用于其他设备。
这就是强/高耦合
由于鼠标仅用于操作光标和相关功能,键盘用于输入按键等,即它们只执行它们所要执行的任务,这就是高内聚性
如果鼠标需要输入一些“a”、“b”、“c”按钮,那么它所做的就超过了它应该做的,因为键盘已经在执行它们了,这就是低内聚
幸运的是,专有端口的过时用法被我们称为USB的标准(接口)所取代。这是松散/低耦合
看看这些物理属性,很明显这就是它应该有的样子,但在编写软件时,很容易忘记什么功能应该放在哪里,等等,因此作为一个提醒,在生活中的任何事情中,始终坚持:
“高内聚和松耦合”
继承或泛化是高耦合(即高度相互依赖)的一个例子。我这么说的意思是,在继承中,父类通常定义了它的子类使用的基本功能,父类方法的更改直接影响它的子类。因此,我们可以说,阶级之间有更大程度的相互依赖。
实现或使用接口是一个高内聚(即低相互依赖)的例子。这意味着接口为实现它的任何类提出了契约,但每个类都有权以自己的方式实现接口中声明的方法,并且一个类中声明的方法的更改不会影响任何其他类。
长话短说,我所理解的低耦合意味着可以在不影响系统正常功能的情况下交换组件。基本上,将您的系统模块化为可单独更新的功能组件,而不会破坏系统
内聚性-所有事物之间的紧密联系。 耦合-所有事物如何相互连接。
让我们举个例子——我们想设计一辆自动驾驶汽车。
我们需要马达正常运转。
我们需要这辆车能自动行驶。
(1)中的所有类和函数都能很好地一起启动电机并使其运行,但不能帮助汽车转向。所以我们把这些类放在引擎控制器后面。
(2)中的所有类和函数都能很好地使汽车转向、加速和制动。它们不能帮助汽车启动或将汽油输送到活塞。所以我们把这些类放在它自己的驱动控制器后面。
这些控制器用于与所有可用的类和函数通信。控制器之间只进行通信。这意味着我不能从油门踏板类中调用活塞类中的函数来使汽车走得更快。
踏板类必须要求驱动控制器与引擎控制器对话,然后引擎控制器告诉活塞类加快速度。这使得我们程序员能够发现问题,并允许我们毫无顾虑地组合大型程序。这是因为代码都是在控制器后面工作的。