Java工程师知识树SSM

Web框架-Mybatis-Mybatis中的设计模式

2021-04-08  本文已影响0人  HughJin

Java工程师知识树 / Web框架SSM


Mybatis源码中涉及到的设计模式:

Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;

工厂模式,例如SqlSessionFactory、ObjectFactory、MapperProxyFactory;

抽象工厂模式,DataSource Transaction

单例模式,例如ErrorContext和LogFactory;

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

组合模式,例如SqlNode和各个子类ChooseSqlNode等;

模板方法模式,例如BaseExecutor和SimpleExecutor,还有BaseTypeHandler和所有的子类例如IntegerTypeHandler;

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

装饰者模式,例如Cache包中的cache.decorators子包中等各个装饰者的实现,比如CacheExcutor;

迭代器模式,例如迭代器模式PropertyTokenizer;

策略模式,比如Statement,Executor

上一篇下一篇

猜你喜欢

热点阅读