目录
Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder。
工厂模式,例如SqlSessionFactory、ObjectFactory、MapperProxyFactory。
单例模式,例如ErrorContext、LogFactory。
代理模式,例如jdk的动态代理MapperProxy、ConnectionLogger,executor.loader包下面的类使用了cglib或者javassist动态代理来达到延迟加载的效果。
组合模式,例如SqlNode、ChooseSqlNode等。
模板方法模式,例如BaseExecutor、SimpleExecutor、BaseTypeHandler等。
适配器模式,例如Log的Mybatis接口和它对jdbc、log4j等各种日志框架的适配实现。
装饰者模式,例如cache.decorators包下面各个类的实现。
迭代器模式,例如PropertyTokenizer。
Builder模式
Builder模式的定义是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它属于创建类模式,如果一个对象的构建比较复杂,超出了构造函数所能包含的范围,就可以使用工厂模式和Builder模式,相对于工厂模式会产出一个完整的产品,Builder应用于更加复杂的对象的构建,甚至只会构建产
本文详细介绍了Mybatis中使用的设计模式,包括Builder模式、工厂模式、单例模式、代理模式、组合模式、模板方法模式、适配器模式、装饰者模式和迭代器模式。Builder模式在SqlSessionFactoryBuilder和XMLMapperBuilder等类中用于构建复杂对象;工厂模式如SqlSessionFactory和MapperProxyFactory用于创建对象;单例模式如ErrorContext和LogFactory实现线程安全的单例;代理模式如MapperProxy实现JDK动态代理;组合模式在动态SQL解析中体现;模板方法模式在Executor执行SQL的流程中应用;适配器模式如LogFactory适配各种日志框架;装饰者模式在缓存实现中使用;迭代器模式如PropertyTokenizer实现字符串遍历。
订阅专栏 解锁全文
2432

被折叠的 条评论
为什么被折叠?



