`
songkewei110
  • 浏览: 40511 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

里氏代换原则(LSP)

 
阅读更多

为什么称它是里氏代换原则?顾名思义啦,这个原则是里氏提出来的啦,其全名为Barbara Liskov,一个很牛的人,有兴趣的可以查一下其简历;

里氏代换原则的描述:

如果对每一个类型为T1的对象O1,都有类型为T2的对象O2,使得以T1定义的所有程序P在所有的对象O1都代换成O2时,程序P的行为没有改变,那么类型T2是类型T1的子类型;

换言之,父类出现的地方,子类一定就可以出现!java语言是支持里氏代换原则的,从里氏代换原则上,我们就很容易理解一个问题,就是父类和子类中方法访问权限的问题;

如果父类声明了一个public的方法method,子类override这个方法的时候,能否把访问权限降低到private呢?从里氏代换原则上考虑,是不行的。也就是说,子类在override父类的方法时,访问权限不能变窄,否则,就不支持里氏代换原则了。

里氏代换原则是类型的行为的一种抽象或者称为描述,我们经常会提到继承关系是“IS-A”的关系,其实,是指在行为上“IS-A”,也就是”ACT-AS”,如果你使用继承涉及的东西,在行为上不能“ACT-AS”,那么,你的设计不满足里氏代换原则,同时,它也不会满足“开闭原则”,这为你以后的扩展与维护会带来很多的麻烦,下面是不满足里氏代换原则的典型的例子:

本文来自:http://plabmedia.com/pd/168110/

分享到:
评论

相关推荐

    里氏代换原则案例程序LSP.zip

    里氏代换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,由芭芭拉·里科夫(Barbara Liskov)在1988年提出。该原则规定,子类必须能够替换它们的基类,并且在软件系统中不会产生任何...

    java的里氏代换原则

    简单来说,里氏代换原则(LSP,Liskov Substitution Principle)指的是在软件工程中,任何引用基类的地方都能被其子类替代,而不会改变程序原有的行为。这意味着子类应该能够完全无缝地替换掉基类,使得系统在使用...

    第二十八讲:基础三里氏代换原则

    在面向对象设计中,三里氏代换原则(Liskov Substitution Principle,简称LSP)是一个核心的设计原则,它由芭芭拉·里科夫(Barbara Liskov)在1988年提出。这个原则是类型继承关系中的一个重要准则,旨在确保软件...

    里氏替换原则Demo

    里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,它是由美国计算机科学家芭芭拉·里科夫(Barbara Liskov)提出的。这个原则强调的是在软件工程中,子类型必须能够替换它们的...

    13丨软件设计的里氏替换原则:正方形可以继承长方形吗?.pdf

    里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,由Barbara Liskov在1988年提出。该原则指出,子类型必须能够替换它们的基类型而不影响程序的正确性。这意味着在软件系统中,...

    java 设计模式与Jar库

    java 设计模式与Jar库 里氏代换原则LSP 依赖倒转原则DIP 接口隔离原则ISP 合成/聚合复用原则CARP

    里氏代换原则_动力节点Java学院整理

    里氏代换原则是面向对象设计的基本原则之一,它的核心思想是确保软件系统的各个组件能够灵活替换而不影响整体系统的稳定性。这一原则由Barbara Liskov在1988年提出,因此也被称为Liskov替换原则(LSP)。在Java和...

    Java23种基本的设计模式整料整理学习源码示例zip

    里氏代换原则(Liskov Substitution Principle) 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的...

    24种设计模式介绍与6大设计原则

    里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能...

    面向对象设计原则Java概要.ppt

    里氏代换原则  里氏代换原则定义 里氏代换原则(Liskov Substitution Principle, LSP)指出,子类必须能够替换它们的基类,而不影响程序的正确性。这意味着子类对象可以在任何基类对象被预期出现的地方进行替换,...

    设计模式Demo

    里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能...

    软件设计的七大原则.doc

    二、 里氏代换原则(LSP) 里氏代换原则是指子类型必须能够替换它们的基类型。反过来的代换不成立。当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,一种是应用组合聚合关系...

    SQL语句优化2

    里氏代换原则(LSP):一个软件实体如果使用的是一个基类的话,那么一定适用于其子类。 依赖倒转原则(DIP):要依赖于抽象,不要依赖于具体。 接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好。 合成/...

    面向对象的设计的原则 电子版

    3. 里氏代换原则(LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个...

    软件设计的七大原则

    二、 里氏代换原则(LSP) 里氏代换原则是指子类型必须能够替换它们的基类型。反过来的代换不成立。当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,一种是应用组合聚合关系...

    design_pattern:关于设计模式的理解

    2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类...

    酒店客房管理系统源码java-design_model:23种设计模式学习记录

    里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类(父类)与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科 3、...

    六种设计原则

    本文将详细探讨六种核心的设计原则,它们分别是开闭原则(Open-Closed Principle, OCP)、里氏代换原则(Liskov Substitution Principle, LSP)、迪米特法则(Law of Demeter, LoD)、依赖倒转原则(Dependency ...

Global site tag (gtag.js) - Google Analytics