设计原则----里氏替换原则(LSP)
里氏代换原则:在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单地说,子类型必须能够替换掉他们的父类型。这好像是学继承时就要理解的概念,子类继承了父类,所以子类可以以父类的身份出现。
只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被利用,而子类也能够在父类的基础上增加新的行为。比如说,猫是继承动物类的,以动物的身份拥有吃、喝、跑、叫等行为,可当某一个天,我们需要狗、牛、羊也拥有类似的行为,由于他们都是继承于动物,所以除了更改实力话的地方,程序的其他出不需要改变。
动物 animal = new 猫();
需求的变化,使得需要将“猫”更换成“狗”、“牛”等其他动物,程序其他地方不需要改变
animal.吃();
animal.喝();
animal.跑();
animal.叫();
正是由于子类型的可替换性才是的使用父类类型的模块在无需修改的情况下可以扩展。不然还谈什么扩展开放,修改关闭呢。再看以来倒转原则,高层模块不应该依赖底层模块,两个都应该依赖抽象,对这句话你就会有更深入的理解了。
分享到:
相关推荐
OO设计原则 --OO设计的LSP里氏替换原则 ,所以使用基类代码的地方,用派生类代码替换后,能够正确的执行动作处理。 ◇ 换句话说,如果派生类替换了基类后,不能够正确执行动作,那么他们的继承关系就应该废除。
http://blog.csdn.net/xingjiarong/article/details/50081857
7里氏替换原则-课程内容.rar
7里氏替换原则-MOOC课程内容.pdf
详细介绍里氏替换原则的由来和效用 里氏替换在面向对象里面是一个重要概念,用来限制继承的使用,继承作为面向对象三大机制之一,虽然带来诸多优点,但也不可避免的有缺憾,而里氏替换就是叫我们如何避免继承给代码...
c++里氏替换原则说明1
里氏替换原则精讲,关于里氏替换原则讲解,谁来监督继承的质量
里氏替换原则有如下特点: 代码共享,减少创建类的工作量 提高代码的重用性 提高代码的可扩展性 提高产品代码的开放性 继承侵入性 只要继承,必须拥有父类的内容 降低代码的灵活性,子类必须拥有...
2 里氏替换原则-Liskov Substitution Principle (LSP) 3 接口分隔原则-Interface Segregation Principle (ISP) 4 单一职责原则-Single Responsibility Principle (SRP) 5 开闭原则-The Open-Closed ...
里氏代换原则案例程序LSP.zip
里氏代换原则是由麻省理工学院(MIT)计算机科学实验室的Liskov女士,在1987年的OOPSLA大会上发表的一篇文章《Data Abstraction and Hierarchy》里面提出来的,主要阐述了有关继承的一些原则,也就是什么时候应该...
设计模式6大原则:里氏置换原则
软件设计的里氏替换原则:正方形可以继承长方形吗
面向对象设计原则:面向对象设计原则、开闭原则、里氏替换原则、里氏替换原则、里氏替换原则
简单介绍 里氏替换原则 简单工程模式 实现任意排序 使用了 is 和 as 方法 ArrayList数组 与 List泛型集合 Hashtable数组 与 Dictionary,v>泛型集合 的基本使用 序列化 将数据存储
里氏替换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。里氏替换原则是实现...
里氏替换原则的定义有: 如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。 定义很完备,但也不太好...
主要介绍了PHP面向对象五大原则之里氏替换原则(LSP),较为详细的分析了里氏替换原则(LSP)的概念、原理并结合实例形式分析了php里氏替换原则(LSP)的简单使用方法,需要的朋友可以参考下
这一个学习java的笔记,里面主要介绍java的里氏代换原则
主要介绍了Java的设计模式中里氏替换原则的意义,文中举例来说明里氏替换原则中强调的继承特性方面可能带来的问题,需要的朋友可以参考下