面向对象设计七大原则

面向对象设计七大原则

图:北京航空航天大学

Guderian出品

AKA:设计模式七大原则

1. 单一职责原则

  • SRP,Single Responsibility Principle
  • 每一个对象有且只有一个职责,从而实现”高内聚、低耦合“
  • 防止一个类实现多个功能,改变一个功能后影响其他功能的正常运作

2. 开放-封闭原则

  • OCP,Open-Closed Principle
  • 对拓展开放、对修改关闭
  • 需要对程序进行拓展的时候,不能修改原有代码,只能在原有代码的基础上添加

3. 李氏替换原则

  • LSP,Liskov Substitution Principle
  • 任何基类出现的地方,一定可以用派生类代替
  • 派生类可以拓展基类的功能,但不能改变基类的功能

4. 依赖倒置原则

  • DIP,Dependence Inversion Principle
  • 实现依赖于抽象,而抽象不依赖于实现
  • 解除高层组件对低层组件的依赖,是实现开闭原则的重要基础

5. 接口隔离原则

  • ISP,Interface Segregation Principle
  • 一个类对另外一个类的依赖性应当是建立在最小的接口上
  • 在特定的使用场合给特定用户提供其需要的方法、屏蔽其不需要的方法

6. 组合重用原则

  • CRP, Composite Reuse Principle,
  • 尽量使用组合,尽量不用继承
  • 在新的对象里面使用已有的对象,使之成为新的对象的一部分

7. 迪米特原则

  • LoD,Law of Demeter
  • 一个对象应该对其他对象又尽可能少的了解
  • 尽量降低成员的访问权限,提供访问器而不公开成员变量

注:C++中只有抽象类的概念,JAVA中既有抽象类的概念,又有接口的概念。

本文标题:面向对象设计七大原则

文章作者:G-SS-Hacker

发布时间:2019年12月12日 - 23:07:33

最后更新:2019年12月12日 - 23:10:10

原始链接:https://G-SS-Hacker.github.io/面向对象设计七大原则/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。