GOF-Creational Design Patterns---Simple Factory Pattern (创建型设计模式)----(简单工厂模式)---学习笔记二

好久没有看书了,以后每天学习一种设计模式。
今天来看看—— Simple Factory Pattern 简单工厂设计模式,又称 Static Factory Method  静态工厂方法模式


定义:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。通常跟具自变量的不同返回不同的类的实例。

简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建出哪一个产品类的实例。

简单工厂模试涉及到工厂角色、抽象产品角色和具体产品角色三个参与者。

Creator (工厂) 角色

是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。被外部直接调用,创建所需的产品对象。
Product (抽象产品) 角色

是简单工厂模式所创建的所有对象的父类,负责描述所有实例所共有的公共接口。

Concrete Product (具体产品)角色

是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

优缺点:

外界不创建产品,仅需消费,不必知道对象如何创建及如何组织,有利于整个软件体系结构的优化。缺点是容易违反GRASPR的高内聚的责任分配原则。
(什么是GRASPR的高内聚分配原则??)

应用情景:
1、工厂负责创建的对象比较少。
2、客户只知道传入工厂的参数,对于如何创建对象不关心。

下面为实例代码:

Code

参考文献:莫勇腾.深入浅出设计模式[M].北京:清华大学出版社,2006
posted @ 2008-03-30 20:55  A_song  阅读(235)  评论(0)    收藏  举报