装饰模式
实验原理:
- 动态地给一个对象添加一些额外的职责。
- 就增加功能来说,装饰模式比生成子类更为灵活。
装饰模式的适用性:
- 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
- 处理那些可以撤销的职责。
- 当不能采用生成子类的方法进行扩充时。
- 可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。
- 类定义被隐藏,或类定义不能用于生成子类。
装饰模式的结构: 例题: 给定两种初始的汽车类,例如丰田和沃尔沃,利用装饰模式分别给它们添加新的功能,其中丰田可以导航和自动驾驶,沃尔沃可以导航和语音控制。 代码:
1 |
|
UML类图: 结果: