《设计模式之美》理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?

阅读: 评论:0

《设计模式之美》理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?

《设计模式之美》理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?

王争《设计模式之美》学习笔记

如何理解“里式替换原则”?

  • 里式替换原则的英文翻译是:Liskov Substitution Principle,缩写为 LSP。
  • 子类对象(object of subtype/derived class)能够替换程序(program)中父类对象(object of base/parent class)出现的任何地方,并且保证原来程序的逻辑行为(behavior)不变及正确性不被破坏。
  • 文中举例传输数据的类,父类 Transporter ,其中传输数据的逻辑在一个方法 sendRequest 中。
  • 子类 SecurityTransporter 继承父类 Transporter ,重写方法 sendRequest ,并增加额外功能,支持传输 appId 和 appToken 安全认证信息。这样的设计符合里式替换原则。
  • 若重写方法 sendRequest ,并且在方法中抛出异常,那么子类的输出逻辑有所改变。这就不符合里式替换原则。
  • 多态是面向对象编程的一大特性,也是面向对象编程语言的一种语法。而里式替换是一种设计原则,是用来指导继承关系中子类该如何设计的,子类的设计要保证在替换父类的时候,不改变原有程序的逻辑以及不破坏原有程序的正确性。

哪些代码明显违背了 LSP?

概述

  • 里式替换原则还有另外一个更加能落地、更有指导意义的描述,那就是“按照

本文发布于:2024-02-01 07:56:59,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674541935037.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:之美   理论   有何区别   模式   代码
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23