抽象工厂模式
2016-04-17 19:19
211 查看
涉及到的角色
抽象工厂角色:担任这个角色的是工厂方法模式的核心,它是与应用系统的商业逻辑无关,通常使用接口或抽象类实现
具体工厂角色:这个角色直接在客户端的调用下创建产品的实例,这个角色含有选择合适的产品对象逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关
抽象产品角色:担任这个角色的类是抽象工厂方法模式所创建的对象的父类,或它们共同拥有的接口,通常使用接口或抽象类实现这一角色
抽象工厂模式的使用地方
一个系统要独立于它的产品的创建、组合和表示时,一个系统有多个产品系列中的一个来配置,当你要强调一系列相关产品对象的设计以便进行联合使用时,当你提供一个产品类库,而只想显示它们的接口而不是实现
抽象工厂模式的优缺点
优点:
1> 产品从客户代码中被分离出来
2> 容易改变产品系列
3> 将一个系列的产品统一到一起创建
缺点:
在产品族中扩展新的产品是很困难的,它需要修改抽象工厂的接口
抽象工厂模式解决的问题
软件开发过程中经常会碰到一系列相关的对象需要创建,如果按照常规做法就要为不同的对象创建编写不同的代码,复用性和可维护性都降低,而且这些相关对象创建的方式也许不同,那么客户代码创建的时候就要针对不同的对象编码,对象创建的方式还是一个容易改变的地方,基于这种情况提出抽象工厂模式,抽象工厂模式为创建一系列相关对象提供统一的接口,客户只要调用这个接口即可,封装了变化,隔离了变化,让那个客户端代码稳定起来
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- Ruby设计模式编程之适配器模式实战攻略
- 实例讲解Ruby使用设计模式中的装饰器模式的方法
- 设计模式中的模板方法模式在Ruby中的应用实例两则
- Ruby设计模式编程中对外观模式的应用实例分析
- 实例解析Ruby设计模式编程中Strategy策略模式的使用
- Ruby中使用设计模式中的简单工厂模式和工厂方法模式
- Ruby使用设计模式中的代理模式与装饰模式的代码实例
- 详解组合模式的结构及其在Ruby设计模式编程中的运用
- C#编程中使用设计模式中的原型模式的实例讲解
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- 实例解析C#设计模式编程中简单工厂模式的使用
- 详解C#设计模式编程中生成器模式的使用
- 深入解析C#设计模式编程中对建造者模式的运用