里氏代换原则

前端之家收集整理的这篇文章主要介绍了里氏代换原则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

里氏代换原则


里氏代换原则:子类型必须能够替换掉它们的父类型。

就是说一个软件实体,如果使用的是一个父类的话,那么一定适用于其子类,而且,它觉察不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。

只有当子类可以替换掉父类,软件单位的功能不收到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

正是由于子类型的可替换性,才使得使用父类类型的模块,在无需修改的情况下就可以扩展。


优点:

1、代码共享,减少创建类的工作量,每个子类都拥有父类方法属性

2、提高代码的重用性。

3、子类可以形成父类,但有异于父类

4、提高代码的可扩展性,实现父类方法,很多开源框架的扩展接口都是通过继承父类来完成的。

5、提高产品或项目的开放性。


当然,有优点就会有缺点,继承的缺点如下:

1、继承是侵入性的,只要继承,就必须拥有父类所有的属性方法

2、降低代码的灵活性,子类必须拥有父类属性方法,让子类自由的世界中多了些约束。

3、增强了耦合性,当父类的常量、变量和方法修改时,必须要考虑子类的修改,而且在缺乏规范的环境下,这种修改可能带来非常糟糕的结果——大片的代码需要重构。


里氏代换原则为良好的继承定义了一个规范:

1、子类必须完全实现父类方法

2、子类可以有自己的个性。

3、覆盖或实现父类方法时,输入参数就可以被放大。

4、覆盖或实现父类方法时,输出结果可以被缩小。

猜你在找的设计模式相关文章