装饰者模式
装饰着模式(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("拍照"); } }