设计模式系列——设计原则之里氏替换原则
什么是里氏替换原则?
我的理解是只要父类出现的地方,子类都可以出现,而且替换之后不会产生错误。
里氏替换原则有什么用?
1.让开闭原则的实现成为可能,(开闭原则是对扩展开放,对修改关闭);
比如,子类实例替换父类实例,可以很方便地扩展系统的功能,无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。
2.让继承的“利”大于“弊”
· 解决了继承中重写父类造成的可复用性变差的问题。
· 是动作正确性的保证,即类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性。
· 加强程序的健壮性,同时变更时可以做到非常好的兼容性,提高程序的维护性、可扩展性,降低需求变更时引入的风险。
如何使用里氏替换原则?
(1)子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
(2)子类中可以增加自己特有的方法。
(3)当子类的方法重载父类的方法时,方法的前置条件(即方法的输入参数)要比父类的方法更宽松。
(4)当子类的方法实现父类的方法时(重写/重载或实现抽象方法),方法的后置条件(即方法的输出/返回值)要比父类的方法更严格或相等。
浙公网安备 33010602011771号