// ConsoleApplication18.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
typedef enum Type
{
TypeA,
TypeB,
TypeC,
} ProductType;
class Product
{
public:
void virtual Show()=0;
};
class ProductA:public Product
{
public:
void Show()
{
cout<<"ShowA"<<endl;
}
};
class ProductB:public Product
{
public:
void Show()
{
cout<<"ShowB"<<endl;
}
};
class ProductC:public Product
{
public:
void Show()
{
cout<<"ShowC"<<endl;
}
};
class SimpleFactory
{
public:
Product* CreatInstance(ProductType pt)
{
switch(pt)
{
case TypeA:
return new ProductA();
break;
case TypeB:
return new ProductB();
break;
case TypeC:
return new ProductC();
break;
default:
return NULL;
break;
}
}
};
int _tmain(int argc, _TCHAR* argv[])
{
SimpleFactory *sf = new SimpleFactory();
Product *pa = sf->CreatInstance(TypeA);
pa->Show();
Product *pb = sf->CreatInstance(TypeB);
pb->Show();
Product *pc = sf->CreatInstance(TypeC);
pc->Show();
delete pa,pb,pc;
return 0;
}
C++(简单工厂)
最新推荐文章于 2023-02-13 16:17:42 发布