您的位置:首页 > 其它

复合优先于继承

2009-09-12 06:03 162 查看
继承打破了封装性。子类依赖于超类中特定功能的实现细节。而超类的实现有可能会随着发行版本发生变化,那么子类就回被破坏。

覆盖动作可能会引起一系列的问题。只给子类增加新的方法,而不覆盖现有的方法,相对比较安全。但是也不是绝对安全。例如 父类被扩展命名了与子类重名的方法。

使用复合可以解决该问题,详细请见设计模式里的装饰者模式。用一个类把另外的类包装起来。

只有当子类真正是超类的子类型时,才适合用继承。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: