设计模式之装饰器模式

1.解释

装饰器模式(Decorator Pattern) 也称为包装模式(Wrapper Pattern) 是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。

装饰器模式的核心是功能扩展,使用装饰器模式可以透明且动态地扩展类的功能。

2.spring实现装饰器模式

1.创建一个接口SourceInterface

public interface SourceInterface {
    void source();
}

2.创建一个实现类

@Service
public class SourceInterfaceImpl implements SourceInterface {

    @Override
    public void source() {
        System.out.println("我是原本的功能!");        
    }
}

3.创建一个装饰类(重要!)

import lombok.AllArgsConstructor;

@AllArgsConstructor
public class DecorateSource {

    private SourceInterface sourceInterface;
    public void source(){
        System.out.println("我是装饰器代码!");
        sourceInterface.source();
        System.out.println("我也是装饰器代码!");
    }
}

4.测试

@SpringBootTest
class DemoLoginApplicationTests {

    @Resource
    private SourceInterface sourceInterface;

    @Test
    void contextLoads() {
        DecorateSource source = new DecorateSource(sourceInterface);
        source.source();
    }

}

5.结果

我是装饰器代码!
我是原本的功能!
我也是装饰器代码!