Factory Method Pattern (工厂方法模式)------------学习笔三

今天下了班,跑到深圳的中心公园走走,嗯 感觉真不错,以后可以那里踢足,呵呵。在深圳想找块地踢球都难啊。。加油!

Factory Method Pattern (工厂方法模式)

定义: Factory Method Pattern 又称工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂 (Polymorphic Factory ) 模式。
父类负责定义创建对旬的公共接口,而子类则负责生成具体的对象,将类的实例化操作交给子类完成。


类或对象之间的关系为:

Product (产品角色)

定义产品的接口

ConcreteProduct(真实的产品)
实现接口Product的类

Creator(工厂角色)
声明工厂方法 (FactoryMethod),返回一个产品

ConcreteCreator(真实工厂)
实现 FactoryMethod 工厂方法,由客户调用,返回一个产品的实现

优缺点:
一、基于工厂角色和产品角色的多态性设计是工厂方法模式的关键。
二、在系统中加入新产品时,无需修改抽象工厂和抽象产品提供的接口,无需修改其他的具体工厂和具体产品,而只要添加一个具体工厂和具体产品就可以了,系统的可扩展性非常好。
三、缺点是在添加新产品时,需要编写新的具体产品类,而且还要提供与之对应的具体工厂类。

优秀的面向设计鼓励使用 Encapsulation (封装) 和 Delegation (委托) 来构造软件系统。

应用情景
1、类不知道自己要创建哪一个对象。
2、类用它的子类来指定创建哪个对象。
3、客户需要清楚创建了哪一个对象。


我觉得 Factory Method Pattern 比 Simple Factory Pattern 模式较优是因为, Factory Method Pattern 比 Simple Factory Pattern 有更高的抽象,简单的说是 Factory Method Pattern 创建了多个生产产品的工厂,而 Simple Factory Pattern 只有一个工厂可生产多个产品,有足够的远见,自然代价也是更高的成本。

示例代码:

Code

参考文献:莫勇腾.深入浅出设计模式[M].北京:清华大学出版社,2006


posted @ 2008-03-31 22:16  A_song  阅读(178)  评论(0)    收藏  举报