耦合、内聚和解耦
在软件工程中,耦合性(Coupling)度量程序各模块之间信息或参数的依赖程度。耦合程度高的系统会有如下问题:
- 如果一个模块需要修改,与之关联的模块也需要随之修改,造成修改的不便
- 由于一个模块依赖多个模块,模块难以被组合
- 由于一个模块依赖多个模块,模块难以复用
相对的是内聚性(Cohesion),指模块内部的凝聚程度。低耦合往往意味着高内聚,「高内聚低耦合」是软件工程领域常见的「好软件」的标准。
解耦(Decoupling)即降低耦合性,提高内聚性,同时模块被复用和组合的能力也会提高。