mybatis中decorator设计模式的运用很好的体现在了,Cache的设计上。所有的装饰器类实现了Cache接口,一个一个装饰器类 串联起来,形成一个链。 每个装饰器类 在委托的类上做了一层装饰,实现特殊的功能。如下:
PerpetualCache<--LruCache<--SerializedCache<--LoggingCache<--SynchronizedCache
和 java.io 中流的设计是一样的
其次,是在CachingExecutor 执行器类设计上,通过对SimpleExecutor,BatchExecutor,ReuseExecutor 的包装来实现二级缓存的功能,设计的相当的优雅。