1、简介 和简单工厂模式不同,核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式。
2、使用场景及能解决的问题 一个系统要独立于它的产品的创建、组合和表示时 一个系统要由多个产品系列中的一个来配置时 当你要强调一系列相关的产品对象的设计以便进行联合使用时 当你提供一个产品类库,而只想显示它们的接口而不是实现时
3、类图
4、实例
首先看看工厂类:
接下来看看工厂相关的实现类:
产品类:
产品相关的实现类:
最后看看客户端的相关类:
5、优缺点
完全支持“开-闭”原则,如果需要增加一个新的产品,需要向系统中加入一个这个产品类以及相应的工厂类,没有必要修改客户端。
posted on 2008-05-28 13:58 云淡风清 阅读(237) 评论(0) 编辑 收藏 所属分类: Design Patterns
Powered by: BlogJava Copyright © 云淡风清