简单工厂模式

来源:互联网 发布:php表单提交数据过滤 编辑:程序博客网 时间:2024/06/09 15:31

1、什么是简单工厂模式?

             简单工厂模式属于类的创建型模式又叫静态工厂方法模式,通过专门定义一个类来负责定义其他类的实例,被创建的类通常都有共同的父类。

      注:简单模式不属于标准的设计模式,它不属于23中模式中的一种模式。

2、模式中包含的角色及其职责

           (1)、工厂角色

                         简单工厂模式的核心,它负责实现创建所有实例的内部逻辑,工厂类可以被外部直接调用,创建所需的产品对象。

           (2)、抽象角色

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

           (3)、具体的产品

                        简单工厂模式所创建的具体实例对象

3、简单工厂模式的优缺点:

           (a)、优点:利于软件结构的优化

           (b)、缺点:扩展性不好,高内聚不好。

3、 案例:

    #include<iostream>      #include<string.h>      using namespace std;            class Fruit      {      public:          virtual void getFruit() = 0;      };            class Banana :public Fruit      {      public:          virtual void getFruit()          {              cout << "我是香蕉..." << endl;          }      };            class Apple :public Fruit      {      public:          virtual void getFruit()          {              cout << "我是苹果..." << endl;          }      };            class Factory       {      public:          Fruit *creat(char *p)          {              if (strcmp(p,"banana")==0)              {                  return new Banana;              }              else if (strcmp(p, "apple") == 0)              {                  return new Apple;              }              else              {                  cout << "不支持!" << endl;                  return NULL;              }          }            };            int main(void)      {          Factory *f = new Factory;          Fruit *fruit = NULL;                // 工厂生产香蕉          fruit = f->creat("banana");          fruit->getFruit();          delete fruit;                // 工厂生产苹果          fruit = f->creat("apple");          fruit->getFruit();          delete fruit;          delete f;          f = NULL;          return 0;            }  


原创粉丝点击