04、mybatis中使用的设计模式

Mybatis中用到至少用到以下设计模式,

1、Builder模式

例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;

2、 工厂模式

例如SqlSessionFactory、ObjectFactory、MapperProxyFactory;

3、单例模式

例如ErrorContext和LogFactory

4、代理模式

Mybatis实现的核心,比如MapperProxy、ConnectionLogger,用的jdk的动态代理;还有executor.loader包使用了cglib或者javassist达到延迟加载的效果;

5、组合模式

例如SqlNode和各个子类ChooseSqlNode等

6、模板方法模式

例如BaseExecutor和SimpleExecutor,还有BaseTypeHandler和所有的子类例如IntegerTypeHandler;

7、适配器模式

例如Log的Mybatis接口和它对jdbc、log4j等各种日志框架的适配实现;

8、装饰者模式

例如Cache包中的cache.decorators子包中等各个装饰者的实现;

9、迭代器模式

例如迭代器模式PropertyTokenizer;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容