注:摘自《敏捷软件开发:原则、模式与实践》(Robert C. Martin)
对于LSP可以做如下解释:
子类型(subtype)必须能够替换掉它们的基类型(base type)
Barbara Liskov首次写下这个原则是在1988年。她说到,
这里需要如下替换性质: 若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P行为功能不变,则S是T的子类型。
OOD中IS-A关系是就行为方式而言的,行为方式是可以进行合理假设的,是客户程序所依赖的。
基于契约设计(Design By Contract DBC),类的编写者显式的规定针对类的契约。客户代码的编写者通过该契约获悉可以依赖的。契约是通过为每个方法声明的前置条件(preconditions)和后置条件(postconditions)来指定的。要使一个方法得以执行,前置条件必须为真。执行完毕后,该方法要保证后置条件为真。
OCP是OOD中很多说法的核心。如果这个原则应用得有效,应用程学就会具有更多的可维护、可重用性以及健壮性。LSP是使OCP成为可能的主要原则之一。正是子类型的可替换性才使得使用基类型的模块在无需修改的情况下就可以扩展。这种可替换性必需是开发人员可以隐式依赖的东西。因此,如果没有显式的强制基类类型的契约,那么代码就必须良好的并且明显的表达出这一点。
术语“IS-A”的含意过于宽泛以至于不能作为子类型的定义。子类型的正确定义是“可替换性”的,这里的可替换性可以通过显式或者隐式的契约来定义。
分享到:
相关推荐
面向对象 设计原则 单一职责原则--SRP 开放封闭原则--OCP Liskov替换原则--LSP 依赖倒置原则--DIP 接口隔离原则--ISP
里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,它是由美国计算机科学家芭芭拉·里科夫(Barbara Liskov)提出的。这个原则强调的是在软件工程中,子类型必须能够替换它们的...
前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(The Liskov Substitution Principle )。 英文原文:...
里式替换原则(LSP,Liskov Substitution Principle)是面向对象设计中SOLID原则之一,由Barbara Liskov在1986年提出。该原则要求子类必须能够替换其基类,而不影响程序的正确性。换言之,如果一个软件实体使用的是...
里氏替换原则(Liskov Substitution Principle, LSP),是由麻省理工学院计算机科学实验室的芭芭拉·里斯科夫(Barbara Liskov)教授在1987年的OOPSLA大会上发表的文章《Data Abstraction and Hierarchy》中首次提出...
Closed Principle,OCP)、依赖倒置原则(Dependency Inversion Principle,DIP)、接口分离原则(Interface Segregation Principle,ISP)以及Liskov替换原则(Liskov Substitution Principle,LSP)。接下来,我们...
里氏代换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,由芭芭拉·里科夫(Barbara Liskov)在1988年提出。该原则规定,子类必须能够替换它们的基类,并且在软件系统中不会产生任何...
2. **Liskov替换原则(LSP)** - Liskov替换原则是面向对象设计的SOLID原则之一,它规定子类必须能够替换其父类,并且不会改变程序的正确性。 - 子类型多态:子类对象能够接受任何父类对象能接受的操作,且行为...
OOD 的核心是面向对象设计原则(OOD principles),其中包括单一职责原则(SRP)、开闭原则(OCP)、Liskov 替换原则(LSP)、基于契约设计(DBC)等。 单一职责原则(SRP) 单一职责原则是指一个类应该只有一个...
其中,里氏替换原则(Liskov Substitution Principle, LSP)是一项非常重要的原则,它确保了子类可以替换其基类而不破坏程序的正确性。本文将深入探讨里氏替换原则的核心概念及其应用场景,帮助读者理解这一原则的...
里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的五大原则之一。这一原则最早由Barbara Liskov在1987年提出,并由Robert C. Martin在后续的软件开发著作中进一步阐述。LSP的主要思想可以...
第十章 Liskov替换原则(LSP) 10.1 Liskov替换原则(LSP) 10.2 一个违反LSP的简单例子 10.3 正方形和矩形,更微妙的违规 10.4 一个实际的例子 10.5 用提取公共部分的方法代替继承 10.6 启发式规则和习惯用法 10.7 ...
Liskov替换原则(Liskov Substitution Principle, LSP)强调子类必须能够替换其基类,并且在不改变程序正确性的前提下执行相同的操作。这一原则的核心在于确保继承关系的合理性和安全性,避免因不当使用继承而导致的...
里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,由Barbara Liskov在1988年提出。该原则指出,子类型必须能够替换它们的基类型而不影响程序的正确性。这意味着在软件系统中,...
第十章 Liskov替换原则(LSP) 10.1 Liskov替换原则(LSP) 10.2 一个违反LSP的简单例子 10.3 正方形和矩形,更微妙的违规 10.4 一个实际的例子 10.5 用提取公共部分的方法代替继承 10.6 启发式规则和习惯用法 10.7 ...
本文将深入探讨面向对象设计的六大原则,包括开放封闭原则、单一职责原则、依赖倒置原则、Liskov替换原则、迪米特法则以及接口隔离原则。 ### 1. 单一职责原则 (Single Responsibility Principle, SRP) 单一职责...
里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,由美国计算机科学家Barbara Liskov在1988年提出。这一原则是类型继承概念的重要基石,它规定了子类型必须能够替换掉它们的基...
本节内容主要介绍了面向对象类的设计原则,包括 SRP(单一职责原则)、OCP(开闭原则)、LSP(Liskov 替换原则)、DIP(依赖反转原则)和 ISP(接口隔离原则)。 SRP(单一职责原则) SRP 原则的主要内容是:一个...