SOLID 面向对象设计

SOLID(单一功能、开闭原则、里氏替换、接口隔离、依赖反转)

S

单一功能原则(Single responsibility principle),规定每个类都应该有一个单一的功能,并且该功能由这个类完全封装起来,不能和其他平行的类有依赖。
参见 维基百科 - 单一功能原则

O

开闭原则(The Open/Closed principle, OCP),软件中的对象(类、模块、函数等),对于扩展是开放的,对于修改是封闭的。
参见 维基百科 - 开闭原则

L

里氏替换原则(Liskov substitution principle),派生类(子类)对象可以在程序中代替其基类(超类)对象。
参见 维基百科 - 里氏替换原则

I

接口隔离原则(interface-segregation principles, ISP),
指明客户(client)不应被迫使用对其而言无用的方法或功能。[1]接口隔离原则(ISP)拆分非常庞大臃肿的接口成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。这种缩小的接口也被称为角色接口(role interfaces)。[2]接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更改和重新部署
参见 维基百科 - 接口隔离原则

D

依赖反转原则(Dependency Inversion Principle,DIP),是指一种特定的解耦(传统的依赖关系建立在高层次上,而具体的策略设置则应用在低层次的模块上)形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。

高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口。
抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。