写点什么

设计原则 — L 里氏替换原则

作者:Lemoon Can
  • 2023-02-21
    浙江
  • 本文字数:605 字

    阅读完需:约 2 分钟

设计原则 — L 里氏替换原则

含义

子类对象能够替换父类对象出现的任何地方,并保证原来程序的逻辑行为不变及正确性不被破坏。


这个规则比较简单,重点是替换不变;当子类要替换父类时,不变父类定义的功能,功能包括任何说明等。

换句话来说就是按照协议来设计,子类按照父类的协议来设计。是对继承父类、实现接口的开发者的约束。

优点

按照原则来做可保证程序实现的功能与对外提供的接口、父类定义的功能是一致的,可增强可读性,减少开发的阅读理解时间、利于开发之间合作(增进开发之间的友谊)。


为什么呢?

先说前两点:看定义就可以知道功能,不需要深入实现细节才可了解,无疑可以减少阅读理解时间。像 Spring 许多接口、注释写的很优秀,可读性就强,在代码庞大的情况下也能更易的大致摸清门道。


再说第三点:正常开发流程,双方之间有依赖,由被依赖方先提供接口,依赖方基于接口开发,而不用等到被依赖方实现完。但依赖方如何可以信赖被依赖方的接口呢?若被依赖者允诺按照原则进行实现,保证一致,依赖方就可以信赖被依赖方提供的接口,理想情况依赖方可无后顾之忧。

这样看来里氏替换原则倒是协作者的合作利器。

如何做

从正面来说就是原则的描述,不够具体执行,发现从不可怎么做来阐述更为明晰:

  1. 不违背父类声明要实现的功能

  2. 不违背父类对输入、输出、异常的约定

  3. 不违背父类注释中所罗列的任何特殊说明


不过这条原则简单,平常写代码过程中其实基本也是遵守的。所以平常稍微多加留意下就行了。


《设计模式之美》—— 王争(极客时间)

发布于: 刚刚阅读数: 5
用户头像

Lemoon Can

关注

装满月亮的柠檬罐子🌙🌟 2019-02-13 加入

“快乐🤣”的 什么都不精😤的 程序媛👾

评论

发布
暂无评论
设计原则 — L 里氏替换原则_SOLID_Lemoon Can_InfoQ写作社区