zoukankan      html  css  js  c++  java
  • 里氏替换原则

    1、里氏替换原则和继承有什么区别?

    里氏替换原则,是指导设计子类用的原则,而继承是面向对象编程的四大特性之一,是一种代码实现的思路。
    里氏替换原则,更加强调子类替换父类之后,不能改变原来的逻辑和原来的正确性

    2、有什么情况是违背了里氏替换原则?下面罗列三种情况

    2.1 子类违背父类生命要是实现的功能
    父类中提供的 sortOrdersByAmount() 订单排序函数,是按照金额从小到大来给订单排序的,而子类重写这个 sortOrdersByAmount() 订单排序函数之后,是按照创建日期来给订单排序的。那子类的设计就违背里式替换原则

    2.2 子类违背父类对输入,输出,异常的约定
    在父类中,某个函数约定:运行出错的时候返回 null;获取数据为空的时候返回空集合(empty collection)。而子类重载函数之后,实现变了,运行出错返回异常(exception),获取不到数据返回 null。那子类的设计就违背里式替换原则

    2.3 子类违背父类注释中所罗列的任何特殊说明
    父类中定义的 withdraw() 提现函数的注释是这么写的:“用户的提现金额不得超过账户余额......”,而子类重写 withdraw() 函数之后,针对 VIP 账号实现了透支提现的功能,也就是提现金额可以大于账户余额,那这个子类的设计也是不符合里式替换原则的

    总结:里氏替换原则是指导设计子类的原则。指导子类设计的时候,要和父类一样的“模式”风格“

  • 相关阅读:
    sphinx-2.1.9的安装使用
    lnmp源码安装
    lvs的负载均衡测试
    Packet Tracer路由器简单配置
    虚拟机克隆系统
    虚拟机永久磁盘和非永久磁盘的应用
    虚拟机和物理机之间的传输的六种方法
    数据库系列(二)之 开发规则与优化
    数据库系列(一)之 底层
    IT之快速提高效率的方法与思考
  • 原文地址:https://www.cnblogs.com/vingLiu/p/12912688.html
Copyright © 2011-2022 走看看