设计模式工厂模式实现C++



/*********************************
*设计模式--工厂实现
*C++语言
*Author:WangYong
*Blog:http://www.cnblogs.com/newwy
********************************/
#include <iostream>
using namespace std;
class Product
{
	public:
	virtual ~Product() = 0;
	protected:
	Product();
};
Product::Product(){}
Product::~Product(){}
class ConcreteProduct : public Product 
{
	public:
		~ConcreteProduct();
		ConcreteProduct();
};


ConcreteProduct::ConcreteProduct()
{
	cout<<"ConcreteProduct ...."<<endl;
}
ConcreteProduct::~ConcreteProduct(){}

class Factory
{
	public:
		virtual ~Factory() = 0;
		virtual Product * CreateProduct() = 0;
	protected:
		Factory();
};
class ConcreteFactory: public Factory
{
	public:
		~ConcreteFactory();
		ConcreteFactory();
		Product * CreateProduct();
};

Factory::Factory(){}
Factory::~Factory(){}
ConcreteFactory::ConcreteFactory()
{
	cout<<"ConcreteFactory........."<<endl;
}
ConcreteFactory::~ConcreteFactory(){}
Product * ConcreteFactory::CreateProduct()
{
	return  new ConcreteProduct();
}
int main()
{
	Factory *fac = new ConcreteFactory();
	Product *p = fac->CreateProduct();
	return 0;
}

原文地址:https://www.cnblogs.com/newwy/p/1855198.html