设计原则(二):里氏替换原则
2016-10-27 13:19 阿诚de窝 阅读(257) 评论(0) 编辑 收藏 举报定义
继承必须确保超类所拥有的性质在子类中仍然成立。任何基类可以出现的地方,子类一定可以出现。
也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。
父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。
问题
在Flex的设计中,继承自显示对象的UI组件不能添加到显示列表中,只能添加到新的一套元素列表中,这违反了里氏替换原则。
解决
UI组件作为显示对象的子类应该可以添加到显示列表中,只需要去掉UI相关的特性即可。
天道酬勤,功不唐捐!