1
0

装饰模式.md 1.3 KB

基于装饰模式设计多级缓存

回顾多级缓存基本概念

在实际开发项目,为了减少数据库的访问压力,我们都会将数据缓存到内存中

比如:Redis(分布式缓存)、EHCHE(JVM内置缓存).

例如在早起中,项目比较小可能不会使用Redis做为缓存,使用JVM内置的缓存框架,

项目比较大的时候开始采用Redis分布式缓存框架,这时候需要设计一级与二级缓存。

装饰模式基本的概念

不改变原有代码的基础之上,新增附加功能

每次新增的功能都要添加一个接口类

img

装饰模式应用场景

多级缓存设计、mybatis中一级与二级缓存、IO流

只要从容器中拿出的对象,他会拥有所有容器对象的引用

装饰者模式定义

(1)抽象组件: 定义一个抽象接口,来规范准备附加功能的类

(2)具体组件:将要被附加功能的类,实现抽象构件角色接口

(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口

(4)具体装饰:实现抽象装饰者角色,负责对具体构件添加额外功能。

装饰与代理区别

装饰模式对我们的装饰对象实现增强,而代理模式及对我们目标对象实现增强。