首页 > 代码库 > 面向对象设计原则

面向对象设计原则

内聚

定义:一个模块内部元素彼此结合的紧密程度。

分类:

  1. 偶然内聚 (Coincidental cohesion)
  2. 逻辑内聚 (Logical cohesion)
  3. 时间内聚 (Temporal cohesion)
  4. 过程内聚 (Procedural cohesion)
  5. 信息内聚 (Informational cohesion)
  6. 顺序内聚 (Sequential cohesion)
  7. 功能内聚 (Functional cohesion) :元素都是为了完成同一个单一任务。内聚性最好的一种方式。

耦合

定义:模块之间相互依赖的程度

分类:

  1. 无耦合
  2. 消息耦合:比较理想的耦合
  3. 数据耦合
  4. 数据结构耦合
  5. 控制耦合:如工厂类
  6. 外部耦合:两个模块对其他模块没有直接感知,两个模块之间也没有直接的交互,而是通过约定俗成的“协议”、“格式”、“接口”等完成分工合作
  7. 全局耦合
  8. 内容耦合:一个模块依赖另一个模块的内部内容(主要是数据成员)时,称为内容耦合。是最差的一种耦合。

高内聚低耦合

为什么要高内聚低耦合:降低复杂性

高内聚低耦合是否意味着内聚越高越好,耦合越低越好:并不是,因为高内聚和低耦合是相互冲突的。

类设计原则(SOLID)

  1. SRP-单一职责原则 (Single Responsibility Principle)
  2. OCP-开闭原则 (Open-Closed Principle)
  3. LSP-里氏替换原则 (Liskov Substitution Principle)
  4. ISP-接口隔离原则 (Interface Segregation Principle)
  5. DIP-依赖反转原则 (Dependency Inversion Principle)

 

面向对象设计原则