应用:
- MyBatis 中
SqlSessionFactoryBuilder
到SqlSessionFactory
,到获取SqlSession
的过程 -源码过程跟踪 - Spring 中
ClientHttpRequestFactory
的获取 到获取 如SimpleStreamingClientHttpRequest
的过程
# 工厂方法模式应用分析?
- 优势:相对简答工厂更加灵活,更加适合创建具备等级结果(继承关系)的产品。
- 劣势:加入每个抽象产品都对应一个具体工厂,那么工厂类可能会比较多。
# 抽象工厂
都想工厂是多个工厂方法的综合应用
需要同时创建多个具备一定等级结构的产品(产品族)
# 抽象工厂对象角色分析
- 抽象产品(Product)
- 具体产品(ConcreteProduct)
- 抽象工厂(Factory)
- 具体工厂(ConcreteFactory)
例如:ClientHttpRequestFactory
- 抽象工厂 (ClientHttpRequestFactory)
- 具体工厂(SimpleClientHttpRequestFactory)
- 抽象产品(ClientHttpRequest,HttpHeaders…)
- 具体产品(SimpleStreamingClientHttpRequest…)