装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。
1 以车举例,我的车可以有跑的功能,我现在想达到的功能是,装饰后,车可以有飞的功能。
调用结果:车可以跑-飞
2 进阶模型
让CarDecorator implements Car。
添加水车
SwimCarDecorator extends CarDecorator
水车的show方法
public void show() {
this.getCar().show();
this.swim();
}
改造飞车FlyCarDecorator的show方法
public void show() {
this.getCar().show();
this.fly();
}
跑车RunCar implements Car里的show方法
public void run() {
System.out.println("可以跑");
}
public