抽象工厂模式是一种创建型的模式,目的是创建一组相关或者相互依赖的对象:
c++代码:
<span style="font-size:18px;">class AbstractProduct
{
public:
AbstractProduct(string name):mName(name){}
virtual ~AbstractProduct()=0;
virtual void show()=0;
protected:
string mName;
};
AbstractProduct::~AbstractProduct(){}
class Iphone:public AbstractProduct
{
public:
Iphone(string name):AbstractProduct(name){}
void show(){cout<<mName<<" creat by apple"<<endl;}
private:
};
class Android :public AbstractProduct
{
public:
Android(string name):AbstractProduct(name){}
void show(){cout<<mName<<" creat by huawei"<<endl;}
private:
};
class AbstractFactory
{
public:
AbstractFactory(){}
virtual AbstractProduct* CreateProduct()=0;
protected:
};
class IphoneFactory:public AbstractFactory
{
public:
IphoneFactory(){}
AbstractProduct* CreateProduct()
{
return new Iphone("iphone");
}
};
class AndroidFactory:public AbstractFactory
{
public:
AndroidFactory(){}
AbstractProduct* CreateProduct()
{
return new Android("android");
}
};
int main()
{
AbstractFactory* pfc_iphone = new IphoneFactory;
AbstractFactory* pfc_andrid = new AndroidFactory;
AbstractProduct* p_iphone = pfc_iphone->CreateProduct();
p_iphone->show();
}</span>