DH01-简单工厂模式

模式简介

简单工厂模式又称静态工厂方法模式,定义一个用于创建对象的接口。其主要组成部分为:

  1. 工厂类角色:模式的核心,具有一定的商业逻辑和判断逻辑。如示例中的类AnimalSpecies
  2. 抽象产品角色:具体产品继承的父类或者实现接口。如示例中的类Animal
  3. 具体产品角色:工厂类所创建的对象就是此角色的实例。如示例中的类CatDog

类图分析

程序代码

#include <iostream>
using namespace std;

class Animal
{
public:
    virtual void showMessage()=0;//基类不在基类中实现纯虚函数的方法是在函数原型后加“=0”
};
class Cat :public Animal
{
public:
    Cat(){}
    void showMessage()
    {
        cout << "i am cat" << endl;
    }
};
class Dog :public Animal
{
public:
    Dog(){}
    void showMessage()
    {
        cout << "i am dog" << endl;
    }
};

class AnimalSpecies
{
public:
    Animal *createAnimal(const char *name)
    {
        if (strcmp(name, "cat")==0) //1、== 返回0  2、>返回正数 3、<返回负数
        {
            return new Cat();
        }
        else if (strcmp(name,"dog")==0)
        {
            return new Dog();
        }   
    }
};

int main()
{
    AnimalSpecies *as=new AnimalSpecies();

    Animal *dog=as->createAnimal("dog");
    Animal *cat = as->createAnimal("cat");
    dog->showMessage();
    cat->showMessage();
    system("pause");
    return 0;
}

参考资料

深入浅出设计模式(中文版)http://wenku.baidu.com/view/8fb442ce0508763231121206.html?from=search

posted @ 2016-04-11 21:03  弦断  阅读(293)  评论(0编辑  收藏  举报