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 等等

 

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