DH01-简单工厂模式
模式简介
简单工厂模式又称静态工厂方法模式,定义一个用于创建对象的接口。其主要组成部分为:
- 工厂类角色:模式的核心,具有一定的商业逻辑和判断逻辑。如示例中的类
AnimalSpecies
- 抽象产品角色:具体产品继承的父类或者实现接口。如示例中的类
Animal
- 具体产品角色:工厂类所创建的对象就是此角色的实例。如示例中的类
Cat
、Dog
类图分析
程序代码
#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
作者:弦断
出处:http://www.cnblogs.com/ucas/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。