-
Builder模式
SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder
-
工厂模式
SqlSessionFactory、ObjectFactory、MapperProxyFactory
-
单例模式
ErrorContext和LogFactory
-
代理模式
Mybatis实现的核心,比如MapperProxy、ConnectionLogger,用的jdk的动态代理;还有executor.loader包使用了cglib或者javassist达到延迟加载的效果
-
组合模式
SqlNode和各个子类ChooseSqlNode等
-
模板方法模式
BaseExecutor和SimpleExecutor,还有BaseTypeHandler和所有的子类例如IntegerTypeHandler
-
适配器模式
Log的Mybatis接口和它对jdbc、log4j等各种日志框架的适配实现
-
装饰者模式
Cache包中的cache.decorators子包中等各个装饰者的实现
-
迭代器模式
迭代器模式PropertyTokenizer