1.工厂方法模式的理
- 是一种创建型模式
- 基于抽象工厂扩展具体工厂然后创建产品对象
2.工厂方法模式应用场景
- Mybatis(SqlSessionFactoryBean)
- Shiro(ShiroFilterFactoryBean)
- Spring(DataSourceFactory,TransactionFactory)
3.工厂方法模式角色
- 抽象产品(Product)
- 具体产品(ConcreteProduct)
- 抽象工厂(Factory)
- 具体工厂(ConcreteFactory)
框架示例
1.mybatis中创建SqlSession对象
- SqlSession(抽象产品)
- DefaultSqlSession(具体产品)
- SqlSessionFactory(抽象工厂)
- DefaultSqlSessionFactory(具体工厂)
2.Spring整合mybatis时,SqlSessionFactory对象过程分析
- SqlSessionFactory(抽象产品)
- DefaultSqlSessionFactory(具体产品)
- FactoryBean(抽象工厂)
- SqlSessionFactoryBean(具体工厂)
4.优缺点
- 优点:相对于简单工厂更加灵活,更加适合创建具备等级结构(继承关系)的产品
- 缺点:假如每个抽象产品都对应一个具体工厂,那么工厂类可能比较多,占用资源多