MyBatis:用到的设计模式。

设计模式 一句话归纳 举例
工厂模式(Factory) 只对结果负责,封装创建过程。 SqlSessionFactory、ObjectFactory、MapperProxyFactory
建造者模式(Builder) 对象构建和表示分离 SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder
单例模式(Singleton) 保证独一无二。 sqlsessionFactory、configuration、ErrorContext、LogFactory
代理模式(Proxy) 找人办事,增强职责。

绑定:MapperProxy
延迟加载:ProxyFactory(CGLIB、JAVASSIT)

插件:Plugin

Spring集成MyBatis:SqlSessionTemplate的内部类SqlSessionInterceptor

MyBatis自带连接池:PooledDataSource管理的PooledConnection

日志打印:ConnectionLogger、StatementLogger

组合模式(Composite) 部分-整体的层次结构 SqlNode和各个子类ChooseSqlNode等
模板模式(Template) 流程标准化,自己实现定制。

BaseExecutor与子类SimpleExecutor、BatchExecutor、ReuseExecutor

BaseTypeHandler

适配器模式(Adapter) 兼容转换头。 logging模块,对于Log4j、JDK logging这些没有直接实现slf4j接口的日志组件,需要适配器
装饰器模式(Decorator) 包装,同宗同源。

LoggingCache、LruCache等对PerpectualCache的装饰

CachingExecutor对其他Executor的装饰

策略模式(Strategy) 用户选择、结果统一。 RoutingStatementHandler
责任链模式(Chain) 一条链上处理各自任务 InterceptorChain

 

你可能感兴趣的:(#,mybatis,mybatis,设计模式)