Anywhere

水中苇
随笔 - 28, 文章 - 3, 评论 - 0, 引用 - 0
数据加载中……

Factory && AbstractFactory;

Factory模式----为一类对象提供创建接口.

特点:当Factory仅仅提供了创建对象的接口时,这时候可以用模板的形式定义Factory类.
       此时的工厂直接生产.
例子:
代码:
Factory类提供一个创建对象的接口:virtual class CreateClass()=0;          //class 代表一个抽象类
ClassFactory则实现这个接口,virtual class CreateClass(){return new class()};  //class代表一个对象类.

使用模板的话:
class Factory
{
public:
~Factory();
virtual class Createclass()=0;
protected:
Factory();
};
typedef class<type>
class classFactory:public Factory;
{
public:
    classFactory();
  ~classFactory();
    type Createclass(){return new type;}
};
 

      
当Factory不仅提供了创建对象的接口,同时将对象的实例化放到了工厂的子类中.
把Factory看作是总厂,负责提供"技术".方法;Factory的子类看作是分工厂,负责生产具体的物品.
这样,生产一种商品就要派生一个子类.为了减少Factory的子类,也可以采用模板的形式定义子类.
 
AbstractFactory模式----为一组对象提供创建接口.
                   AbstractFactory
ChildFactoryA ChildFactoryB ..
物品1生产 物品2生产(或者更多相关的) 物品3生产 物品4(more)
总之,抽象工厂是用来封装创建一组或一类相关对象的接口.

posted on 2009-07-10 16:16 三水寿 阅读(157) 评论(0)  编辑 收藏 引用 所属分类: 设计模式学习笔记----创建模式


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理