装饰着模式(Decorator)
1 概念
1、定义
- 在不改变原有对象的基础上,将功能附加到对象上。
 
  
2、应用场景
- 扩展一个类的功能或给一个类添加附加职责。
 
3、优点
- 不改变原有对象的情况下,扩展功能。
 - 使用不同的组合可以实现不同的效果。
 - 符合开闭原则。
 
2、实现
package com.xianhuii.designpattern;
public abstract class Decorator implements Component {
    Component component;
    public Decorator(Component component) {
        this.component = component;
    }
    public static void main(String[] args) {
        Component component = new ConcreteDecorator2(new ConcreDecorator1(new ConcreteComponent()));
        component.operation();
    }
}
class ConcreDecorator1 extends Decorator {
    public ConcreDecorator1(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();
    }
}
interface Component {
    void operation();
}
class ConcreteComponent implements Component {
    @Override
    public void operation() {
        System.out.println("拍照");
    }
} 
京公网安备 11010502036488号