mybatis用到的设计模式

1、工厂模式:SqlSessionFactroy 的实现类DefaultSqlSessionFactory初始化的DefaultSqlSession

2、动态代理:依赖注入的mapper实例是代理类MapperProxy 等等

3、策略模式:Executor的实现类是根据枚举实例ExecutorType策略生成的执行器

4、装饰器模式:CachingExecutor在开启二级缓存后生效,装饰第三条生成的Executor,表面是CachingExecutor,实际是第三条的执行器

5、委托模式:MapperProxy 的代理方法都是由mapperMethod.execute(sqlSession, args)执行,最终是由DefaultSqlSession的方法执行,所有的DefaultSqlSession的方法都是委托给了之前生成的Executor来执行的

6、责任链模式:所有的mybatis插件在执行的时候都是责任链模式,生成Executor的样例代码:executor = (Executor) interceptorChain.pluginAll(executor);

7、模板模式:最简单的

8、建造者模式: SqlSessionFactoryBuilder 等等

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章