目 录CONTENT

文章目录

java设计原则--里氏替换原则

在水一方
2021-12-28 / 0 评论 / 0 点赞 / 175 阅读 / 612 字 / 正在检测是否收录...

java的核心特性之一:继承,Java中的继承时单继承,子类继承了父类后就可以使用父类的属性和方法(私有属性和方法以外),子类需要重写父类的抽象方法,继承机制在一定程度上提高了代码的复用性,提高了代码的可拓展性,但也是有缺点

继承缺点

缺点一:继承时侵入性的,也就是说子类继承了父类就必须拥有父类所有的属性和方法

缺点二:灵活性降低,子类必须拥有父类的属性和方法,让子类多了些约束

缺点三:增强了耦合性,当父类的常量、变量和方法被修改时需要考虑子类的修改

里式替换作用

Java的单继承机制从总体上看是利大于弊,那么,如何让利的优势发挥最大,同时减少弊的带来的麻烦呢,于是就有了里式替换原则,里氏替换原则为良好的继承定义了一个规范

我们在做系统设计时,经常会定义一个接口或抽象类,然后编码实现,调用类则直接传入接口或抽象类,其实这里已经使用了里氏替换原则

举一个CS的案例:
枪的主要职责是射击,如何射击在各个具体的子类中定义,手枪是
单发射程比较近,步枪威力大射程远,机枪用于扫射。在士兵类中定义
了一个方法killEnemy,使用枪来杀敌人,具体使用什么枪来杀敌人,调
用的时候才知道,AbstractGun类的源程序如代码清单如下图所示。

image.png

写了个办成品,待续............

注意 在类中调用其他类时务必要使用父类或接口,如果不能使
用父类或接口,则说明类的设计已经违背了LSP原则

本文内容参考设计模式之禅,仅用于个人学习,如有不妥请联系删除

0

评论区