mybatis用到的设计模式

Posted Java小白学心理

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;


以上是关于mybatis用到的设计模式的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis源码分析三-数据源模块分析,工厂模式的使用

mybatis注解模式的多表关联查询问题

mybatis缓存源码分析之浅谈缓存设计

9月24号面试总结(康拓普2面)

Mybatis源码解析Mybatis源码中涉及的设计模式总结

MyBatis配置项--处理枚举类型