前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle )。 开闭原则的描述是: 在面向对象编程里,继承提供了一个机制让子类和共享基类的代码 ...
阐述:子类型 subtype 必须能够替换掉它们的基类型 basetype 先提出一个问题:正方形是不是一种特殊的长方形 IS A关系 先不要回答这个问题,看下面的分析。 理解:LSP原则的一个例子,假如有个people的基类,两个字类man类和woman类,都继承于people类。那么针对people类的任何操作,比如fun吃饭 fun睡觉 fun走路,对于man类和woman类都成立。这个很好 ...
2012-04-07 16:29 0 5673 推荐指数:
前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle )。 开闭原则的描述是: 在面向对象编程里,继承提供了一个机制让子类和共享基类的代码 ...
一、定义 (1)、所有使用基类的地方必须能够使用子类进行替换,而程序的行为不会发生任何变化(替换为子类之后不会产生错误或者异常)。 只有这样,父类才能真正被复用,子类能够在父类的基础上增减新的属性和行为。才能真正的实现多态行为。 (2)、当子类继承父类的时候,子类就拥有了父类的属性和行为 ...
什么是里氏代换原则 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正 ...
1 里氏替换原则定义 Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承 ...
前言 上一节中我们介绍了,依赖倒置,依赖倒置利用抽象的稳定性来架构我们的系统,是我们经常能遇到的一种原则,比如说面向接口编程。 这一节中,我们来说说里氏替换原则,这个原则其实非常非常的简单,其实与依赖倒置相结合来看,就是希望我们用抽象的方法来构建项目而非具体的实现,里氏替换原则就是推荐 ...
OO中继承的包含一层这样的含义:父类中凡是已经实现好的方法,实际上是在设定规范的契约,虽然它不强制要求所有的父类遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。 ...
里氏替换原则 前言:今天是3.15,一个特殊的日子。不知道还会曝光出多少家不良企业,更不知道潜藏的未被曝光的企业数量之巨有没有超出我的想象力。每年都会爆出一些诸如“塑化剂、毒胶囊、问题奶、速成鸡”等等新的食品安全关键词,走进餐馆,走进食堂,走进超市,还真不知道什么东西敢碰。新 ...
里氏替换原则的定义是:所有引用基类的地方必须能透明化地使用其子类的对象。 里氏替换原则针对的问题 有一个功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1与新功能P2组成。新功能P由类A的子类B来完成,则子类B在完成新功能P2的同时,有可能会导致原有功能P1 ...