工厂模式
工厂模式分为三种:即简单工厂模式、工厂方法模式、抽象工厂模式,其实大同小异,总结下来就是:
简单工厂模式:一个工厂,多个产品。产品需要有一个虚基类。通过传入参数,生成具体产品对象,并利用基类指针指向此对象。通过工厂获取此虚基类指针,通过运行时多肽,调用子类实现。
#include<iostream>
#include<string>
using namespace std;
class Product
{
public:
Product(string name):mname(name){}
virtual void operation() = 0;//虚函数
virtual~Product(){};
public:
string mname;
};
class Product1:public Product
{
public:
Product1(string name):Product(name){}
void operation()
{
cout<<"产品1"<<endl;
}
};
class Product2:public Product
{
public:
Product2(string name):Product(name){}
void operation()
{
cout<<"产品2"<<endl;
}
};
class Factory
{
public:
Product*creatProduct (int flag)
{
switch(flag)
{
case 1:
return new Product1("产品1");
break;
case 2:
return new Product2("产品2");
break;
default: