设计原则-LSP里氏代换原则

1.定义

所有引用基类(父类)的地方必须能透明地使用其子类的对象。

里式替换是用来指导继承关系中子类该如何设计的,子类的设计要保证在替换父类的时候,不改变原有程序的逻辑以及不破坏原有程序的正确性。

2.分析

为什么要遵循LSP?

违背LSP将导致没有定义的行为,没有定义的行为意味着它也许在开发阶段工作得很好,但是在产品生存环境掉链子,或者你要花数周时间去调试一天只发生一次的问题,或者你得遍历几百兆的日志去找出哪儿出错了。

实际上,里式替换原则还有另外一个更加能落地、更有指导意义的描述,那就是“Design By Contract”,中文翻译就是“按照协议来设计”。

3.实例

违反LSP的例子:

猜你喜欢

转载自www.cnblogs.com/windpoplar/p/12726477.html