前言

SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是面向对象编程和面向对象设计的五个基本原则。如果这些原则被很好的遵守,那么程序猿可以更容易开发一个易于维护和扩展的系统。

缩写全称翻译
SRPThe Single Responsibility Principle单一责任原则
OCPThe Open Closed Principle开放封闭原则
LSPThe Liskov Substitution Principle里氏替换原则
ISPThe Interface Segregation Principle接口分离原则
DIPThe Dependency Inversion Principle依赖倒置原则

《写了这么多年代码,你真的了解SOLID吗?》

  1. 单一职责是所有设计原则的基础,开闭原则是设计的终极目标。
  2. 里氏替换原则强调的是子类替换父类后程序运行时的正确性,它用来帮助实现开闭原则。
  3. 而接口隔离原则用来帮助实现里氏替换原则,同时它也体现了单一职责。
  4. 依赖倒置原则是过程式编程与OO编程的分水岭,同时它也被用来指导接口隔离原则。

一、单一职责原则

一个类只应承担一种责任,一个类只做一件事。



二、开放封闭原则

实体应该对扩展是开放的,对修改是封闭的。即,可扩展(extension),不可修改(modification)。

三、里氏替换原则

子类型(应该/必须)可以当作父类型用。(某个地方如果用到了父类,那么把父类换成子类,程序依然能够正常运行,这就符合里氏替换原则)



四、依赖倒置原则

  1. 高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象。换言之,模块间的依赖是通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。

  2. 接口和抽象类不应该依赖于具体实现,而具体实现依赖接口或抽象类。

五、接口隔离原则

  1. 不应该强行要求客户端依赖于它们不用的接口。
    客户端需要什么接口,就依赖什么接口,不需要的就不依赖。



  2. 类之间的依赖应该建立在最小的接口上面。
    何为最小的接口,即能够满足项目需求的相似功能作为一个接口,这样设计主要就是为了“高内聚”。那么我们如何设计最小的接口呢?那就要说说粒度的划分了,粒度细化的程度取决于单一职责原则里面接口划分的粒度。





http://xzh.i3geek.com

爱唠叨的老鱼

爱唠叨的老鱼

技术经理,个人站长,创业者

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据