高内聚 , 低耦合
一个良好的易维护的可扩展的软件,应该满足【高内聚 低耦合】原则
内聚:
高内聚表示某个特定的软件模块-----无论是一个子程序,一个类型还是一个类库,都应完成一系列极为相关的功能,换句话说,内聚表示同一个类型中不同方法,同一个类库中不同函数,同一个方法中不同操作表达式的逻辑之间的距离等。
高内聚表示某个特定的软件模块-----无论是一个子程序,一个类型还是一个类库,都应完成一系列极为相关的功能,换句话说,内聚表示同一个类型中不同方法,同一个类库中不同函数,同一个方法中不同操作表达式的逻辑之间的距离等。
高内聚的衡量标准从低到高,越高表示越好
低内聚的 设计会使模块(如类型)的职责(如方法)彼此关系松散,甚至是在完成一些毫不相关的操作。在实际中,高内聚原则建议我们创建尽可能专门的类型,包含较少的方法,用来完成逻辑上相关的操作。如若方法之间的逻辑距离有所增加,那么此时应该拆分成另外的类型。
最简单的内聚高低辨别方式: 如果修改模块A,且不会影响到模块B,那么A和B两个模块就有了足够的内聚,值得在系统中使用
模块(如一个类型)的内聚高低与其担当的职责多少成反比关系
也就是,某类的职责越多 内聚变低的可能性就越大
反过来,某类的职责越低 内聚肯定会很高
耦合:
耦合用来度量两个软件模块,例如,类型、函数或类库之间的依赖程度。
耦合定义: 若每次修改模块A时都要修改模块B,那么A和B这两个模块就是耦合的
耦合的衡量标准从低到高,耦合越低说明软件设计得越好
低耦合并不是说你的模块应该于其他模块完全隔绝。模块之间是肯定需要通信的,不过通信应该依赖于一系列设计良好且不易改变的接口。每个模块都应该在无需了解另一个模块内部实现细节的情况下与之良好配合
一个好的面向对象设计同样需要满足低耦合和高内聚原则,既功能完备的对象(高内聚)之间通过固定的接口进行交互(低耦合)
Grass Mud Horse