面向对象编程思想的六大原则

时间:2021-08-16 23:08:31

面向对象编程思想的六大原则

1.单一职责原则
单一职责原则英文全称:Single Responsibility Principle 简称SRP
定义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,其实就是一个类只负责一个工作。就和流水线上的员工一样,每个人只负责一个工作。
注意:单一职责的划分界限并不是总是那么清晰,很多时候都是需要靠个人经验来界定的。
2.开闭原则
开闭原则英文全称:Open Close Principle, 缩写:OCP
定义:软件中的对象(类,模板,函数等)应该对于扩展是开放的,但是对于修改是封闭的,这就是开放–关闭原则。其实就是如果更改需求尽量做到不修改之前代码。这样会避免原有模块的出错,当需求更改时尽量去扩展而不是去修改。
3.里氏替换原则
里氏替换原则英文全称:Liskov Substitution Principle,缩写:LSP
定义:所有引用类的地方必须能透明地使用其子类的对象。其实就是依赖面向对象的继承和多态特性,将接口参数变成父类,只要实参是其子类就可以。这也强调了一个重要特性就是–抽象。
4.依赖倒置原则
依赖倒置原则英文全称:Dependence Inversiion Principle 缩写:DIP
定义:指代了一种特定的解耦形式,使得高层次的模块不依赖于低层次的模块的实现细节的目的,依赖模块被颠倒了。具体表现是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的。其实就是面向接口编程的思想,可扩展性高,可以拥抱变化
5.接口隔离原则
接口隔离原则英文全称:InterfaceSegregation Principles 缩写:ISP
定义:客户端不应该依赖它不需要的接口。|| 类间的依赖关系应该建立在最小的接口上。就是一个接口别什么事都做,要不然实现它的子类将会有很多用不到的方法,如图所示:
面向对象编程思想的六大原则
面向对象编程思想的六大原则
6.迪米特原则
迪米特原则英文全称:Law of Demeter 缩写LOD
定义:一个对象应该对其他对象保持最少的了解。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。但是,过分的使用迪米特原则,会产生大量这样的中介和传递类,导致系统复杂度变大。所以在采用迪米特法则时要反复权衡,既做到结构清晰,又要高内聚低耦合。