1.首先你得有一个组件接口
interface Component{
void operate();
}
2.接着实现下具体的组件类,就是有个初始操作
class ConcreteComponent implements Component{
public void operate(){
System.out.println("这是最基本的操作");
}
}
3.然后你要有个抽象装饰器
abstract class Decorator implements Component{
Component component;
public Decorator(Component component){
this.component=component;
}
}
4.最后你可以定义n个你需要的具体装饰器
class ConcreteDecorator extends Decorator{
public ContreteDecorator(Component component){
super(component);
}
public void operate(){
System.out.println("执行添加自己额外要装饰原本操作的操作");
component.operate();
}
}
5.客户端使用
Component decorator=new ConcreteDecorator(new ConcreteComponent());
decorator.operate();
这样就可以在不改动原有操作类的基础上进行添加额外的装饰操作.看一下官方图示