mybatis 設計的設計模式:
1.builder 設計模式 例如: SqlSessionFactoryBuilder.xmlConfigbuilder,xmlMapperBuilder,xmlStatementBuilder,CacheBuilder
2.工廠設計模式,例如: SqlsessionFactory,ObjectFactory,MapperProxyFactory
3.單利設計模式 例如: ErrorContext和LogFactory
4.代理模式,mybatis實現的核心,比如mapperProxy,connectionLogger,用的是jdk的動態代理
5.組合模式,例如: SqlNode 和各個子類ChooseSqlNode等
6.模板方法模式:例如:BaseExecutor和SimpleExecutor,還有BaseTypeHander和所有的子類例如 IntegerTyprHander
7.適配器設計模式 Log的Mybatis接口和它對jdbc.log4j等各種日誌框架的適配實現
8.裝飾者模式 例如Cache包中的cache.decorators子包中等各個裝飾着的實現
9.迭代器設計模式 例如PropertyTokenizer
參考:
2.https://blog.csdn.net/Noky0/article/details/83018958
3.https://www.jianshu.com/p/9bcac608c714--- mybatis的動態代理
4.https://www.jianshu.com/p/c7f19e5310f9---組合設計模式
5.https://www.jianshu.com/p/800a44c1d9dd------模板設計模式
6.https://zhuanlan.zhihu.com/p/56518978---適配器設計模式
7.https://www.jianshu.com/p/b5a189df628b---適配器設計模式
8.https://www.jianshu.com/p/a1edbf3214e6--- mybatis 源碼分析
9.https://www.jianshu.com/p/0037f57c85a4------策略設計模式