设计模式的六大原则


Author:ProZoom

Hobby:爱折腾、爱思考,想静静的ProZoom

Github --- --- CSDN --- 关于我


六大基本原则

1. 单一职责原则

全称:Single Responsibility Principle

缩写:SRP

定义:一个类应该有且只有一个变化的原因(There should never be more than one reason for a class to change.)

定义解读:《UNIX编程艺术》中提到的一句话和这篇文章很贴切:Do one thing,and do it well。通俗的说,即一个类只负责一项职责

2. 开闭原则

全称:Open Close Principle

缩写:OCP

定义:一个软件实体(如类、模块、函数)应当对扩展开放,对修改关闭。

定义解读:

3. 里氏替换原则

全称:Liskov Substitution principle

缩写:LSP

定义:任何一个基类可以出现地方,子类一定可以出现,并且不会产生任何错误(注意:必须是父子关系)

定义解读:第一个注意:里氏替换原则核心就是抽象(继承和接口)每一个子类都会拥有父类的方法属性

第二个注意:开闭原则和里氏替换原则生死相依,通过里氏替换原则达到了对外开放,对修改关闭

里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

4. 依赖导致原则

全称:Dependence Inversion Principle

缩写:DIP

定义:高层次模块不依赖于低层次模块实现细节

定义解读:说白了,依赖于抽象,不依赖具体实现指导子类实现功能细节,依赖倒置原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒置。

5. 接口隔离原则

全称:Interface Segregation Principle

缩写:ISP

定义:类与类之间的依赖关系应该是建立在最小的接口上

6. 迪米特原则--最少知识原则

全称:Least Knowledge Principle

缩写:LKP

定义:一个对象应该对其他的对象有最少的了解

设计原则总结

六大基本原则都是基于抽象(抽象类和接口)

你可能感兴趣的:(设计模式的六大原则)