设计原则(二):里氏替换原则

定义

继承必须确保超类所拥有的性质在子类中仍然成立。任何基类可以出现的地方,子类一定可以出现。

也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。

父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。

问题

在Flex的设计中,继承自显示对象的UI组件不能添加到显示列表中,只能添加到新的一套元素列表中,这违反了里氏替换原则。

解决

UI组件作为显示对象的子类应该可以添加到显示列表中,只需要去掉UI相关的特性即可。

原文地址:https://www.cnblogs.com/hammerc/p/4743742.html