装饰模式也叫包装器模式,是一种类的设计模式,用于扩展类的功能。
Java 示例代码:
<span style="font-size:14px;"><span style="font-size:10px;">public class Car {
public void run(){
System.out.println("跑");
}
}</span></span>
<span style="font-size:14px;"><span style="font-size:10px;">public class MyCar {
private Car car;
public MyCar(Car car) {
this.car = car;
}
public void run() {
car.run();
System.out.println("能飞");
}
}</span>
</span>
说明:类MyCar 扩展了类Car的功能。
疑问:装饰模式和继承比较?
装饰模式使用情况:
一种情况:对一个类如果有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。
一种情况:一个类可能是因为类定义被隐藏,或类定义不能用于生成子类。
参见:http://blog.youkuaiyun.com/lenotang/article/details/2587265