面向对象五大设计原则-里氏代换原则
1、里氏代换原则
里氏代换原则(Liskov Substitution Principle)是指,任何基类出现的地方,子类一定可以出现。反之则不一定成立。
通俗的讲便是:“老鼠儿子会打洞”。
里氏代换原则是对继承关系的补充,为什么呢?
2、继承关系的特质
- 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性
- 提高代码的重用性
- 子类可以形似父类,但是又异于父类。
- 提高代码的可扩展性,实现父类的方法就可以了。许多开源框架的扩展都是通过继承父类或实现接口来完成。
- 提高产品或项目的开放性
在设计一个工具或框架时,不可能面面俱到,满足所有需求,所以需要定制一个规范的接口,让用户自己实现差异化的需求。
这里的父类不仅仅是单纯意义上的父类,更多的代表接口或抽象类。
3、继承关系的缺点
- 继承是侵入性的,只要继承,就必须拥有父类的所有方法和属性
- 降低了代码的灵活性,子类必须拥有父类的属性和方法,让子类有了一些约束
- 增加了耦合性,当父类的常量,变量和方法被修改了,需要考虑子类的修改,这种修改可能带来非常糟糕的结果,要重构大量的代码。
里氏代换原则目的是为了让继承中的优势发挥到最大,劣势减到最少。
4、里氏代换原则的规范
- 子类必须完全实现父类的方法
- 子类可以有自己的独特性
- 覆盖或实现父类方法时,输入参数的范围可以被放大
- 覆盖或实现父类方法时,输出结果的范围可以被缩小
1、一般使用接口或抽象类,对外暴露的是接口,而实际应用的是子类。也是多态的应用(继承、重写、父类引用指向子类对象)其中使用到了java的隐式转换。
2、子类可以有自己的行为和外观。里氏代换原则可以正着用,但不能反着用,即子类出现的地方,父类未必可以胜任。但是避免子类有过于突出的个性,一旦子类有过于突出的个性,把子类单独作为一个业务使用,则会让代码间的耦合关系变得难以理解,缺乏替换的标准
3、方法中的输入参数称为前置条件,当子类前置条件大于等于父类约束时,替换成子类,程序的前置条件特征才不会发生畸变,里氏代换原则才成立。
4、同理,为了让运行结果不发生畸变,只有输出结果的范围小于等于父类的约束时,子类扩展才拥有健壮性,版本升级时也可以保持良好的兼容性。即使增加新子类,原有的业务还可以继续运行。
面向对象五大设计原则-里氏代换原则相关推荐
- 软件设计原则——里氏代换原则
里氏代换原则 里氏代换原则是面向对象设计的基本原则之一. 里氏代换原则:任何基类可以出现的地方,子类一定可以出现. 通俗理解:子类可以扩展父类的功能,但不能改变父类原有的功能. 换句话说,子类继承父类 ...
- java设计模式之设计原则⑥里氏代换原则
定义: (1)一个软件实体如果使用的是一个父类的话,那 么一定适用于其子类,而且它察觉不出父类和子 类对象的区别.也就是说,在软件里面,把父类 替换成它的子类,程序的行为没有变化. (2)一个软件实体 ...
- 设计模式—六大原则—里氏代换原则
里氏代换原则(Liskow-Substitution-Principle) 定义:子类对象能够替换父类对象,而程序逻辑不变. 里氏替换原则是确保继承正确使用的方法(继承使用的要求条件). Li ...
- 设计模式七大原则-里氏代换原则
文章目录 一.概念 二.例程 三.代码示例 一.概念 里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象 里氏 ...
- Java设计原则之单一职责原则、开闭原则、里氏代换原则
文章目录 面向对象设计原则概述 单一职责原则 开闭原则 里氏代换原则 面向对象设计原则概述 软件的可维护性(Maintainability)和可复用性(Reusability)是两个非常重要的用于衡量 ...
- 设计模式-设计原则之里氏代换原则
设计原则之里氏代换原则 里氏代换原则 案例(正方形不是长方形) 案例改进 里氏代换原则 里氏代换原则是面向对象设计的基本原则之一. 里氏代换原则:任何基类可以出现的地方,子类一定可以出现. 通俗理解: ...
- 带你认识六种设计原则(开闭原则、里氏代换原则、依赖倒转原则....)
前言 1. 设计原则 1.1. 开-闭原则 1.2. 里氏代换原则 1.3. 依赖倒转原则 1.4. 接口隔离原则 1.5. 合成/聚合原则 1.6. 迪米特法则 前言 学习设计模式之前先要了解其中的 ...
- 【设计原则】里氏代换原则
一.什么是里氏代换原则 里氏代换原则 : 子类可以扩展父类的功能,但是不能改变父类原有的功能.(子类尽量不要重写父类的方法) 原因:重写父类的方法会降低整个继承体系的复用性(当多态频繁时,程序出错概率 ...
- 大话设计模式三之单一职责原则、开放-封闭原则、依赖倒置原则、里氏代换原则
单一职责原则 单一职责原则(SRP),意思就是说,功能要单一.准确解释是,就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或 ...
最新文章
- Windows10自带搜索增强设置
- SQL查询语句的排序
- LetCode-算法-整数反转
- centos7 删除zabbix_Zabbix服务器端运行中显示为“不”的解决方式
- Navicat15连接Oracal失败解决办法
- 大数据分析方法管不管用
- linux开机启动 sogou输入法 xcompmgr .xprofile 黑块
- redis smembersmap_Redis五种数据类型
- 短路主板电源针,启动电脑的办法
- 二阶微分方程解法总结 Summary of Second Order Equations
- C语言中指针与取地址符详解
- 研究生学习生活日记——第二次组会
- OAuth2授权原理
- 基于低代码平台开发的督办系统为企业管理赋能
- 第一行代码Android技巧1——知晓当前是在哪一个活动
- 解决微信小程序数据渲染缓慢或卡顿的方法
- ATF启动(五):服务注册
- win10连接win7共享打印机提示无法连接到打印机
- 你见过最心酸的事是什么?
- 用一个小故事告诉你什么叫做大数据