1、Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder
2、工廠模式:例如SqlSessionFactory、ObjectFactory、MapperProxyFactory
3、單例模式:例如LogFactory、ErrorContext
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