码迷,mamicode.com
首页 > 其他好文 > 详细

DH01-简单工厂模式

时间:2016-04-11 22:11:02      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

模式简介

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

  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

DH01-简单工厂模式

标签:

原文地址:http://www.cnblogs.com/ucas/p/5380153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!