里氏替换原则(思维导图)

作者: Zentopia | 来源:发表于2018-08-19 10:54 被阅读26次
image.png
  • 继承的优缺点
    • 优点
      • 提高代码的重用性
      • 提高代码的可扩展性
    • 缺点
      • 继承是侵入性的。只要有继承,就必须拥有父类的所有属性和方法
      • 如上点,增强了耦合性。当父类被修改时,需要考虑子类的修改
  • 目的
    • 采用里氏替换原则就是为了减少继承带来的缺点,增强程序的健壮性,版本升级时也可以保持良好的兼容性。即使增加子类,原有的子类也可以继续运行。
  • 定义
    • 只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误和异常,反之则不行。简而言之,父类可以被子类替换,子类不能被父类替换。
  • 含义
    • 子类必须完全实现父类的方法
    • 子类可以有自己的属性和方法
      • 子类替代父类传递到调用者中时,子类的方法永远不会被调用。
      • 要想让子类方法被调用,必须通过覆写父类方法来实现。
    • 子类中方法的前置条件必须与超类中被覆写的方法的前置条件相同或更宽松
      • 前置条件:方法调用前必须满足的条件,如方法的入参类型
    • 子类中方法的后置条件必须与超类中被覆写的方法的后置条件相同或更严格
      • 后置条件:方法调用后必须满足的条件,如方法的返回值类型
  • 使用场景
    • 在类中调用其他类时,务必要使用父类或接口,否则说明类的设计已经违背了里氏替换原则。
    • 如果子类不能完整地实现父类方法,或者父类的某些方法在子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚集、组合等关系来代替继承。

参考资料

  • 《设计模式之禅》

相关文章

  • 里氏替换原则(思维导图)

    继承的优缺点优点提高代码的重用性提高代码的可扩展性缺点继承是侵入性的。只要有继承,就必须拥有父类的所有属性和方法如...

  • 里氏替换原则

    里氏替换原则 “里氏替换原则(Liskov Substitution Principle,LSP)” 定义 一:(...

  • 里氏替换原则

    个人博客原文:里氏替换原则 设计模式六大原则之二:里氏替换原则。 简介 姓名 :里氏替换原则 英文名 :Lisko...

  • 设计模式之里氏替换原则

    设计模式之里氏替换原则 里氏替换原则(LSP: Liskov Substitution Principle) 定义...

  • 面向对象的原则里氏替换原则

    里氏替换原则 里氏替换原则的英文全称是Liskov Substitution Principle,缩写是LSP。 ...

  • 六、里氏替换原则

    里氏替换原则(Liskov Substitution Principle,LSP) 里氏替换原则是我认为其他几个设...

  • 里氏替换原则

    里氏替换原则 里氏替换原则(Liskov Substitution Principle, LSP) 父类能出现的地...

  • 六大设计原则-里氏替换原则

    里氏替换原则 Liskov Substitution Principle 简称LSP。 什么是里氏替换原则 1.如...

  • 里式替换原则(ISP)

    里氏替换原则定义 里氏替换原则(Liskov Substitution Principle,LSP):第一种定义:...

  • 设计模式 里氏替换原则

    设计模式 里氏替换原则继续里氏替换原则。上回栗子为正方形不能被长方形继承,这次,具体 子类必须实现父类的方法 类图...

网友评论

本文标题:里氏替换原则(思维导图)

本文链接:https://www.haomeiwen.com/subject/fycciftx.html