前言
SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是面向对象编程和面向对象设计的五个基本原则。如果这些原则被很好的遵守,那么程序猿可以更容易开发一个易于维护和扩展的系统。
缩写 | 全称 | 翻译 |
---|---|---|
SRP | The Single Responsibility Principle | 单一责任原则 |
OCP | The Open Closed Principle | 开放封闭原则 |
LSP | The Liskov Substitution Principle | 里氏替换原则 |
ISP | The Interface Segregation Principle | 接口分离原则 |
DIP | The Dependency Inversion Principle | 依赖倒置原则 |
- 单一职责是所有设计原则的基础,开闭原则是设计的终极目标。
- 里氏替换原则强调的是子类替换父类后程序运行时的正确性,它用来帮助实现开闭原则。
- 而接口隔离原则用来帮助实现里氏替换原则,同时它也体现了单一职责。
- 依赖倒置原则是过程式编程与OO编程的分水岭,同时它也被用来指导接口隔离原则。
一、单一职责原则
一个类只应承担一种责任,一个类只做一件事。
二、开放封闭原则
实体应该对扩展是开放的,对修改是封闭的。即,可扩展(extension),不可修改(modification)。
三、里氏替换原则
子类型(应该/必须)可以当作父类型用。(某个地方如果用到了父类,那么把父类换成子类,程序依然能够正常运行,这就符合里氏替换原则)
四、依赖倒置原则
高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象。换言之,模块间的依赖是通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。
接口和抽象类不应该依赖于具体实现,而具体实现依赖接口或抽象类。
五、接口隔离原则
不应该强行要求客户端依赖于它们不用的接口。
客户端需要什么接口,就依赖什么接口,不需要的就不依赖。
类之间的依赖应该建立在最小的接口上面。
何为最小的接口,即能够满足项目需求的相似功能作为一个接口,这样设计主要就是为了“高内聚”。那么我们如何设计最小的接口呢?那就要说说粒度的划分了,粒度细化的程度取决于单一职责原则里面接口划分的粒度。
http://xzh.i3geek.com
0 条评论