面向对象设计五大原则

在程序设计领域, SOLID单一职责、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入的,指代了面向对象编程和面向对象设计的五个基本原则。

单一职责

单一职责原则(Single responsibility principle,简称SRP),规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行,意味着没有依赖)。

开闭原则

开闭原则(Open closed principle,简称OCP),规定软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。

里氏替换

里氏替换原则(Liskov substitution principle,简称LSP),描述的是派生类(子类)对象可以在程序中代替其基类(超类)对象。

它由芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出,原文为:Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.

接口隔离

接口隔离原则(Interface segregation principle, 简称ISP),指的是客户只需要知道他们感兴趣的方法,不应被迫使用对其而言无用的方法或功能。

依赖反转

依赖反转原则(Dependency inversion principle,简称DIP),高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口,抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。