建造者模式
这里讲得很清楚了
深入浅出设计模式——建造者模式(Builder Pattern)
在mybatis中,在解析配置文件的时候使用。
Builder角色是org.apache.ibatis.builder.BaseBuilder
ConcreteBuilder角色就是它的实现类,分别负责解析不同类型的配置文件,包括
org.apache.ibatis.builder.xml.XMLConfigBuilder
org.apache.ibatis.builder.xml.XMLMapperBuilder
org.apache.ibatis.builder.xml.XMLStatementBuilder
org.apache.ibatis.builder.SqlSourceBuilder
Product角色就是org.apache.ibatis.session.Configuration
Director角色就是org.mybatis.spring.SqlSessionFactoryBean
策略模式
详细介绍看这里
JAVA设计模式详解——策略模式
在mybatis中,StatementHandler就是使用策略模式。
抽象策略类(Strategy)角色是org.apache.ibatis.executor.statement.StatementHandler
具体策略类(ConcreteStrategy)角色是
org.apache.ibatis.executor.statement.CallableStatementHandler
org.apache.ibatis.executor.statement.PreparedStatementHandler
org.apache.ibatis.executor.statement.SimpleStatementHandler
环境类(Context)角色是org.apache.ibatis.executor.statement.RoutingStatementHandler
RoutingStatementHandler会根据StatementType选择对应的StatementHandler实现类
整理中。。。