多层继承结构存在的问题:
- 扩展性问题(类个数膨胀问题):
• 如果要增加一个显得电脑类型,则要增加各个品牌下面的类。• 如果要增加一个新的品牌,也要增加各种电脑类型的类。
- 违反单一职责原则:
• 一个类:联想笔记本,有两个引起这个类变化的原因(品牌和类型)
多层继承结构的类图:
解决方案:将两种引起变化的维度(品牌和种类)分开。
桥接模式:
- 桥接模式可以取代多层次继承的方案。多层继承违背了单一职责原则,复用性较差,类的个数也非常多。桥接模式可以极大地减少子类的个数,从而降低管理和维护的成本。
- 桥接模式极大地提高了系统可扩展性,在两个变化维度中任意扩展一个维度,都不需要修改原有的系统,符合开闭原则。
使用桥接模式类图: