#里氏

面向对象的六大原则之 —— 里氏替换原则

学习了何红辉、关爱民写的《Android设计模式》,对于面向对象的六大原则有进一步的理解,特此根据自己的理解记录总结一下什么是里氏替换原则面向对象的语言有三大特性:封装、继承、多态,里氏替换原则就是依赖于继承、多态这两大特性,它的原则就是只要父类能出现的地方子类就能出现,而且不会报错,但是子类能出现的地方,父类不一定能...

设计模式之里氏替换原则示例

  里氏替换原则强调的是设计和实现要依赖于抽象而非具体;子类只能去扩展基类,而不是隐藏或者覆盖基类,它包含4层含义.  1、子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法  子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约...

《架构整洁之道》之里氏替换原则

1988年,BarbaraLiskov在描述如何定义子类型时写下这样一段话:这样需要的是一种可替换性:如果对于每个类型是S的对象o1都存在一个类型为T的对象o2,能使操作T类型的程序P在用o2替换o1时行为保持不变,我们就可以将S称为T的子类型。在面向对象这场编程革命兴起的早起,我们的普遍认知正如上文所说,认为LSP只...

前端用到的设计模式之开闭原则. 里氏代换原则

开闭原则,如果jQuery源码稍微了解,肯定知道它的应用了.一个模块----函数或对象,应该凭着经验来判断,对扩展开放,对修改关闭.------一般用继承实现扩展,用闭包来实现关闭.为什么开闭原则?它跟复杂度有什么关系,?复杂度,就是一个函数里包含的功能个数;当开闭原则不遵守时,想扩展功能,必然去原来的函数里添加代码,...

设计模式六大原则(2):里氏替换原则

       肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(BarbaraLiskov)提出来的。定义1:如果对每一个类型为T1的对象o1,都有类型为T2的...

设计模式之里氏替换原则

 面向对象编程中存在的问题: 1)在子类层面上,因为子类可以对父类已经实现的方法进行任意的修改。可能对继承体系造成破坏。2)在父类层面上,如果父类修改了,所有涉及到子类的功能都有可能产生故障。 概念:  里氏替换原则并不是不让我们使用继承,所有引用基类的地方必须能透明地...