/*********************************
*设计模式--工厂实现
*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;
}