设计模式之抽象工厂模式(C++) ——欢迎各位多发表意见啊
#include <iostream>
using namespace std;
class IProductA
{
public:
virtual void show() = 0;
};
class ProductA1:public IProductA
{
public:
void show()
{
cout<<"This is ProductA1"<<endl;
}
};
class ProductA2:public IProductA
{
public:
void show()
{
cout<<"This is ProductA2"<<endl;
}
};
class IProductB
{
public:
virtual void show() = 0;
};
class ProductB1:public IProductB
{
public:
void show()
{
cout<<"This is ProductB1"<<endl;
}
};
class ProductB2:public IProductB
{
public:
void show()
{
cout<<"This is ProductB2"<<endl;
}
};
class IFactory
{
public:
virtual IProductA* CreateProductA() = 0;
virtual IProductB* CreateProductB() = 0;
};
class ConcreateFactory1:public IFactory
{
public:
IProductA* CreateProductA()
{
IProductA* p = new ProductA1();
return p;
}
IProductB* CreateProductB()
{
IProductB* p = new ProductB1();
return p;
}
};
class ConcreateFactory2:public IFactory
{
public:
IProductA* CreateProductA()
{
IProductA* p = new ProductA2();
return p;
}
IProductB* CreateProductB()
{
IProductB* p = new ProductB2();
return p;
}
};
int main()
{
IFactory* pFactory = new ConcreateFactory2();
IProductA* pIPA = pFactory->CreateProductA();
IProductB* pIPB = pFactory->CreateProductB();
pIPA->show();
pIPB->show();
delete pIPA;
delete pIPB;
delete pFactory;
return 1;
}