装饰者模式
定义:在不改变原有对象的基础上,将功能附加到对象上
这个其实大家在平时写代码的时候就已经用过了,只是不知道这是一个模式
下面看一个案例
有一个组件的接口,然后我有一个具体的实现类,现在我需要在这个具体实现类的基础上进行功能拓展
组件接口
1 | public interface Component { |
具体接口实现
1 | public class ConcreteComponent implements Component{ |
拓展功能抽象类
1 | public abstract class EnhanceComponent implements Component{ |
具体增强类
1 | public class ConcreteEnhanceComponent extends EnhanceComponent{ |
优点:
- 不改变原有代码的情况下,对原来的类进行增强
- 使用不同的组合可以实现不同的人效果
- 符合开闭原则