简单工厂
1.简单工厂的简单介绍与简单实现
简单工厂可以说就是把new这一步骤放到Factory类中来做。假如我有一个产品j基类名为Product,产品基类有两个子类分别是ProductOne和ProductTow。Factor类主要就是生产(new)这两个子类产品。
Product基类:
class Product
{
public:
virtual void test(std::string s) = 0;
protected:
Product() {}; //屏蔽构造函数
};
ProductOne和ProductTow子类:
class ProductOne
: public Product
{
public:
virtual void test(std::string s)
{
std::cout << "ProductOne: " << s << "\n";
}
};
class ProductTow
: public Product
{
public:
virtual void test(std::string s)
{
std::cout << "ProductTow: " << s << "\n";
}
};
Factory类:
createProduct函数根据传入进来的类型来生产出对应的产品
class Factory
{
public:
static Product* createProduct(int type)
{
Product* pProduct = nullptr;
if (type == 1)
{
pProduct = new ProductOne;
}
else if (type == 2)
{
pProduct = new ProductTow;
}
return pProduct;
}
};
main中使用:
int main(void)
{
Factory::createProduct(1)->test("测试One");
Factory::createProduct(2)->test("测试Tow");
return 0;
}