其他分享
首页 > 其他分享> > 工厂模式

工厂模式

作者:互联网

工厂模式

  1.  工厂模式分为简单工厂模式、工厂方法模式、抽象工厂模式三种

简单工厂模式

  1. 简单工厂模式包含两部分工厂类、产品类(工厂函数)
  2. 同一个工厂类(工厂函数)通过传递不同的参数可以生产不同类型的产品(如不同品牌的洗衣机)
  3. 简单工厂模式主要利用基类指针或引用可以指向派生类对象的特性
查看代码

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