c++设计模式-简单工厂模式
简单工厂模式
简单工厂模式
适用情况
当产品类数目不多,而且逻辑简单的时候可以使用简单工厂
优缺点
有点:逻辑简单
缺点:违背了开闭原则,每次都要修改代码逻辑
与其他模式关系
简单工厂是工厂模式的原型,工厂模式是将简单工厂里的if-else提取成类
简易类图
代码实例
enum products{
ConcreteProduct1=1;
ConcreteProduct2=2;
}
class Product {
public:
virtual ~Product() {}
virtual std::string Operation() const = 0;
};
class ConcreteProduct1 : public Product {
public:
std::string Operation() const override {
return "{Result of the ConcreteProduct1}";
}
};
class ConcreteProduct2 : public Product {
public:
std::string Operation() const override {
return "{Result of the ConcreteProduct2}";
}
};
class Creator {
public:
virtual ~Creator(){};
virtual Product* FactoryMethod() const = 0;
Product Create(products para) const {
if(para=products.ConcreteProduct1) return new ConcreteProduct1();
else if(para=products.ConcreteProduct2) return new ConcreteProduct2();
}
};