class Client
{
public:
static void main(string[] args)
{
public:
ConcreteProduct1 concreteProduct1 = (ConcreteProduct1)SimpleFactory.makeProduct(Const.PRODUCT_A);
concreteProduct1.show();
ConcreteProduct2 concreteProduct2 = (ConcreteProduct2)SimpleFactory.makeProduct(Const.PRODUCT_B);
concreteProduct2.show();
}
//抽象产品
Product
{
void show();
}
//具体产品:ProductA
static class ConcreteProduct1:Product
{
public:
void show()
{
cout<<"具体产品1显示...";
}
}
//具体产品:ProductB
static class ConcreteProduct2:Product
{
public:
void show()
{
cout<<"具体产品2显示...";
}
}
class Const
{
static int PRODUCT_A = 0;
static int PRODUCT_B = 1;
static int PRODUCT_C = 2;
}
static class SimpleFactory
{
public:
static Product makeProduct(int kind)
{
switch(kind)
{
case Const.PRODUCT_A:
return new ConcreteProduct1();
case Const.PRODUCT_B:
return new ConcreteProduct2();
}
return null;
}
}
}