1//面向对象设计原则:LSP里氏替换原则2//鸵鸟不是鸟的测试程序34#include <stdio.h>56//鸟类7classBird8{9private:10doublevelocity;//速度11public:12virtualvoidfly() {printf("I can fly!\n");}13virtualvoidsetVelocity(doublev){velocity =v;}14virtualdoublegetVelocity(){returnvelocity;}15};1617//...
使用里氏替换原则:把所有父类出现的地方替换为子类 package des.lsp; import java.util.HashMap; public class Client { public static void invoker(){ Son f = new Son(); HashMap map = new HashMap(); f.doSomething(map); } public static void main(String[] args) { emy((AUG) new Rifle())...
里氏替换原则(Liskov Substitution Principle,LSP)是面向对象编程中的一个设计原则,由麻省理工学院的Liskov于1988年提出。里氏替换原则主张使用“抽象”和“多态”将设计中的静态结构改为动态结构,维持设计的封闭性。这个原则的主要目标是确保软件的可扩展性和可替换性。 里氏替换原则要求,在使用基类(父类)的地方,应该能...
按照业务切换实现类,业务是可以正常进行的,不会破坏程序的正确性,不会发生异常。最关键的是这两个实现类,可以直接替换掉License接口。这样就是符合LSP原则的。 正方形/长方形问题 以下设计中,正方形/长方形问题,是一个著名的违反LSP的设计案例。 可以看到,User调用Rectangle为获得长方形的面积,可设置宽高。而正方形...
🐱👓一、里氏替换原则(LSP)简介 里氏替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一。其核心思想是:子类必须能够替换其父类,并且替换后不会影响程序的正确性。换句话说,如果软件中的对象使用的是基类的话,那么无论它实际上被哪个子类替换,软件的行为都不会发生变化。vb...
里氏替换原则(Liskov Substitution Principle , LSP) 由麻省理工学院计算机科学西教授 Barbara Liskov 于1987年提出, 她提出:继承必须确保超类所拥有的性质在子类中仍然成立。 里氏替换原则问题由来 有一功能 P1,由类 A 完成。 现需要将功能 P1 进行扩展,扩展后的功能为 P,其中P由原有功能 P1 与新功能 P2 组成...
里氏替换原则 (Liskov Substitution Principle,LSP)是面向对象设计的基本原则之一。 该原则的核心思想是:在程序中,如果将一个父类 对象替换成它的子类对象后,程序不会发生异常。也就是说,子类可以扩展父类的功能,但不能改变父类原有的功能。1 这个原则是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能...
里氏替换原则(LSP,Liskov Substitution Principle)是关于继承机制的原则,是实现开放封闭原则的具体规范,违反了里氏替换原则必然违反了开放封闭原则。 引经据典 约瑟夫.斯大林,苏联时期苏联共产党的最高领导人,对于斯大林有没有替身?有几个替身?有一种说法:斯大林有好几个替身,最著名的当属“第一替身”叶夫谢伊.卢比茨...
里氏替换原则(Liskov Substitution Principle),由Barbara Liskov 在 1988 年提出。 一句话概括:就是基类指针可以在任何不知道衍生类的条件下使用衍生类的对象。 Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it. ...