在实际开发项目,为了减少数据库的访问压力,我们都会将数据缓存到内存中
比如:Redis(分布式缓存)、EHCHE(JVM内置缓存).
例如在早起中,项目比较小可能不会使用Redis做为缓存,使用JVM内置的缓存框架,
项目比较大的时候开始采用Redis分布式缓存框架,这时候需要设计一级与二级缓存。
不改变原有代码的基础之上,新增附加功能
每次新增的功能都要添加一个接口类
多级缓存设计、mybatis中一级与二级缓存、IO流
只要从容器中拿出的对象,他会拥有所有容器对象的引用
(1)抽象组件: 定义一个抽象接口,来规范准备附加功能的类
(2)具体组件:将要被附加功能的类,实现抽象构件角色接口
(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口
(4)具体装饰:实现抽象装饰者角色,负责对具体构件添加额外功能。
装饰模式对我们的装饰对象实现增强,而代理模式及对我们目标对象实现增强。