工厂模式
作者:互联网
工厂模式
- 工厂模式分为简单工厂模式、工厂方法模式、抽象工厂模式三种
简单工厂模式
- 简单工厂模式包含两部分工厂类、产品类(工厂函数)
- 同一个工厂类(工厂函数)通过传递不同的参数可以生产不同类型的产品(如不同品牌的洗衣机)
- 简单工厂模式主要利用基类指针或引用可以指向派生类对象的特性
查看代码
enum WasherBrand{Midea = 0, Haier, Gree};
class Washer
{
public:
virtual WasherBrand brand() = 0;
};
class MideaWasher:public Washer
{
public:
MideaWasher()
{
cout << "Midea Washer!" << endl;
}
WasherBrand brand()
{
return Midea;
}
~MideaWasher(){}
};
class HaierWasher :public Washer
{
public:
HaierWasher()
{
cout << "Haier Washer!" << endl;
}
WasherBrand brand()
{
return Haier;
}
~HaierWasher() {}
};
class GreeWasher :public Washer
{
public:
GreeWasher()
{
cout << "Gree Washer!" << endl;
}
WasherBrand brand()
{
return Gree;
}
~GreeWasher() {}
};
class WasherFactory
{
public:
Washer* createwasher(WasherBrand brand)
{
switch (brand)
{
case Midea:
return new MideaWasher();
case Haier:
return new HaierWasher();
case Gree:
return new GreeWasher();
}
return nullptr;
}
};
标签:模式,工厂,MideaWasher,WasherBrand,Washer,public 来源: https://www.cnblogs.com/ludai/p/Factory.html