1. 程式人生 > 其它 >Mybatis中設計模式的運用

Mybatis中設計模式的運用

雖然我們都知道有23個設計模式,但是大多停留在概念層面,真實開發中很少遇到。Mybatis原始碼中使用了大量的設計模式,閱讀原始碼並觀察設計模式在其中的應用,能夠更深入的理解設計模式。
Mybatis至少遇到了以下的設計模式的使用:
1、Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;
2、工廠模式:例如SqlSessionFactory、ObjectFactory、MapperProxyFactory;
3、單例模式:例如ErrorContext和LogFactory;


4、代理模式:Mybatis實現的核心,比如MapperProxy、ConnectionLogger,用的jdk的動態代理;還有executor.loader包使用了cglib或者javassist達到延遲載入的效果;
5、組合模式:例如SqlNode和各個子類ChooseSqlNode等;
6、模板方法模式:例如BaseExecutor和SimpleExecutor,還有BaseTypeHandler和所有的子類例如IntegerTypeHandler;
7、介面卡模式:例如Log的Mybatis介面和它對jdbc、log4j等各種日誌框架的適配實現;
8、裝飾者模式:例如Cache包中的cache.decorators子包中等各個裝飾者的實現;

9、迭代器模式:例如迭代器模式PropertyTokenizer;
10、責任鏈模式:例如Interceptor、InterceptorChain
接下來挨個模式進行解讀,先介紹模式自身的知識,然後解讀在Mybatis中怎樣應用了該模式。

郭慕榮部落格園