美文网首页
04 里氏替换原则

04 里氏替换原则

作者: 猿笔记 | 来源:发表于2017-12-22 18:25 被阅读16次

定义

  里氏替换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
解释 在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常;反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。

建议

  在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

注意点

  (1)子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法
  (2)  尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法,运行时,子类实例替换父类实例,可以很方便地扩展系统的功能,同时无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。
  (3) Java语言中,在编译阶段,Java编译器会检查一个程序是否符合里氏代换原则,这是一个与实现无关的、纯语法意义上的检查,但Java编译器的检查是有局限的。

示例


存在的问题:代码重复、不利于新增类型
改进方法:里氏替换原则

相关文章

网友评论

      本文标题:04 里氏替换原则

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