包装模式(适配器模式和装饰者模式)

 

先看一个图

 

 

 

带个 Wrapper的一般就装饰器模式 或者适配器模式

 

 

mybatis中的Cache

 

 

 

通过对 Cache的实现进行了进一步包装,就可以实现多种多样的功能,如LRU, FIFO等缓存淘汰策略

 

 

点击 SynchronizedCache 可以看到,这个是给 方法加上了 Synchronized , 不同的包装类,实现了对应特定业务的功能

 

 

关于适配器模式:

 

优点:

  1. 能提高类的透明性和复用,现有的类复用,但不需要改变
  2. 目标类和适配器类解耦,提高程序的扩展性
  3. 符合开闭原则

缺点:

  1. 适配器编写需要全面考虑,可能增加系统的复杂性
  2. 增加系统代码可读的难度

适配器的种类:

  1. 对象适配器
  2. 类适配器

适配器模式可以 结合 门面模式对比看看:

都是对现有的类进行封装, 门面模式是定义一个新的接口

而适配器模式则是复用 接口(旧接口,旧实现)的方法

从粒度上看:

外观模式是用来适配整个子系统,而适配器模式的粒度更小

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/lyr-2000/p/12561276.html