装饰者模式 = 包装模式(Wrapper)
作用:用来动态的为一个对象增加新的功能。
装饰模式是一种用于代替继承的技术, 无须通过继承增加子类就能扩展对象的新功能 。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。
二、装饰者模式的应用1、MyBatis中的cache缓存设计 1)Cache接口、PerpetualCache实现类装饰者模式的应用场景还是非常多的,比如
- IO流中的FileInputStream,FileOutputStream等
- Spring中的各种Wrapper
- MyBatis中的缓存设计
Cache接口:定义了缓存的基本操作
PerpetualCache实现类:仅仅实现了数据基于内存的读写操作。功能单一。
- BlockingCache:阻塞的
- LruCache:根据Lru规则来淘汰缓存数据
- FifoCache:根据FIFO规则来淘汰缓存数据



