您的位置:首页 > 编程语言 > C语言/C++

C++设计模式之工厂模式

2016-02-25 15:54 393 查看
#define APPLE  1
#define ORANGE 2
class XFruit
{
public :
virtual void ShowName() = 0;
} ;
//派生出子类商品
class Apple : public XFruit
{
public :
void ShowName (){ShowMessage("My name is apple"); }

};
class Orange : public XFruit
{
public :
void ShowName(){ShowMessage("My name is orange");}
} ;
//工厂类基类
class FruitShop
{
public:

XFruit* SaleFruit(int type)
{
if(type == APPLE)
{
return new Apple;
}
else if(type == ORANGE)
{
return new Orange;
}
else
{
return NULL;
}

}
} ;

void __fastcall TForm1::RzButton1Click(TObject *Sender)
{
FruitShop * fruitshop = new FruitShop();
fruitshop->SaleFruit(APPLE)->ShowName();
delete  fruitshop;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::RzButton2Click(TObject *Sender)
{
FruitShop * fruitshop = new FruitShop();
fruitshop->SaleFruit(ORANGE)->ShowName();
delete  fruitshop;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: