装饰器模式: 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。
示例:
1、Cache 接口是 MyBatis 缓存中最顶层的抽象接口,位于 org.apache.ibatis.cache 包中,定义了 MyBatis 缓存最核心、最基础的行为。
2、Cache 接口有非常多的实现类,其中的 PerpetualCache 扮演的是装饰器模式中 的 ComponentImpl 这个角色,实现了 Cache 接口缓存数据的基本能力。
3、除了 PerpetualCache 之外的其他所有 Cache 接口实现类(位于 org.apache.ibatis.cache.decorators 包中),都是装饰器实现,也就是 DecoratorImpl 的角色。