软件开发一直都吼着,要开发高内聚,低耦合的代码。
先谈谈,什么是高内聚?内聚性,又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。用大白话说,高内聚就是模块的独立性强,功能明确、单一,一个模块只做一件事情。
低耦合呢?耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。简单说耦合性越高,代码越难读,难改,牵一发动全身。电脑USB口经常被作为一个例子,来说明低耦合性。可以插入USB口工作的设备和电脑都是低耦合性,电脑不依赖于外部任何外部USB设备,只要你符合USB规范,插上就可以用。USB规范就像一个抽象类,所有外部设备必须实现抽象类,确保能被正确调用。
看看SOLID 五大原则与高内聚,低耦合的关系:
高内聚 - S 单一职责原则, I 接口隔离原则
低耦合 - O 开闭原则, D 依赖倒置原则, L 里氏替换原则