1. 定义
2. 实现
基础:拍照功能
interface Component {
void operation();
}
//拍照
class ConcreteComponent implements Component {
@Override
public void operation() {
System.out.println("拍照.");
}
}
定义装饰器
abstract class Decorator implements Component {
Component component;
public Decorator(Component component) {
this.component = component;
}
}
扩展美颜功能
//扩展美颜
class ConcreteDecorator1 extends Decorator {
public ConcreteDecorator1(Component component) {
super(component);
}
@Override
public void operation() {
System.out.println("添加美颜.");
component.operation();
}
}
扩展滤镜功能
//扩展滤镜
class ConcreteDecorator2 extends Decorator {
public ConcreteDecorator2(Component component) {
super(component);
}
@Override
public void operation() {
System.out.println("添加滤镜.");
component.operation();
}
}
使用
public static void main(String[] args) {
//拍照
Component component = new ConcreteComponent();
component.operation();
//扩展美颜
Component component1=new ConcreteDecorator1(component);
component1.operation();
//扩展滤镜
Component component2=new ConcreteDecorator2(component1);
component2.operation();
}