背景:
同事W定义的接口中返回了一个接口O,这个接口O中仅继承了Serializable,无任何方法属性, 然后我负责的模块内实现了该接口,返回值的类OImpl由我实现,调用同事W的对外接口的同事强制转换为OImpl并使用,继而引发了里式替换原则的争论。
里式替换原则:
Liskov Substitution principle
里氏替换原则的内容可以描述为: “派生类(子类)对象可以在程序中代替其基类(超类)对象。” 以上内容并非利斯科夫的原文,而是译自[罗伯特·马丁](Robert Martin)对原文的解读。
Let Φ(x) be a property provable about objects x of type T. Then Φ(y) should be true for objects y of type S where S is a subtype of T.
结论:
我错了,这个问题跟里式替换没有什么关系。
image.png








网友评论