1. 定义
2. 实现
基础:拍照功能
interface Component {void operation();}//拍照class ConcreteComponent implements Component {@Overridepublic 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);}@Overridepublic void operation() {System.out.println("添加美颜.");component.operation();}}
扩展滤镜功能
//扩展滤镜class ConcreteDecorator2 extends Decorator {public ConcreteDecorator2(Component component) {super(component);}@Overridepublic 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();}
