//
// Created by xiemenghui on 2018/7/20.
//

#ifndef DESIGNPATTERN_FACTORY_H
#define DESIGNPATTERN_FACTORY_H

#include "product.h"

// 抽象工厂模式
class Factory {
public:
    enum FACTORY_TYPE {
        BENZ_FACTORY,   // 奔驰工厂
        BMW_FACTORY,    // 宝马工厂
        AUDI_FACTORY    // 奥迪工厂
    };

    virtual ICar* CreateCar() = 0;      // 生产汽车
    virtual IBike* CreateBike() = 0;    // 生产自行车
    static Factory * CreateFactory(FACTORY_TYPE factory); // 创建工厂
};

#endif //DESIGNPATTERN_FACTORY_H