04、mybatis中使用的设计模式
2019-08-27 本文已影响0人
vannesspeng
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;