装饰者模式

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

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务