Factory Pattern(工廠模式)
來源:程序員人生 發布時間:2015-06-06 08:06:45 閱讀次數:2548次
Factory Pattern(C++實現)
/*Product.h*/
#ifndef PRODUCT_H
#define PRODUCT_H
class Product
{
public:
virtual ~Product()=0;
protected:
Product();
private:
};
class ConcreteProduct:public Product
{
public:
~ConcreteProduct();
ConcreteProduct();
protected:
private:
};
#endif
/*Product.cpp*/
#include "Product.h"
#include <iostream>
Product::Product()
{
}
Product::~Product()
{
}
ConcreteProduct::ConcreteProduct()
{
std::cout<<"ConcreteProduct..."<<std::endl;
}
ConcreteProduct::~ConcreteProduct()
{
}
/*Factory.h*/
#ifndef FACTORY_H
#define FACTORY_H
class Product;
class Factory
{
public:
virtual ~Factory()=0;
virtual Product *CreateProduct()=0;
protected:
Factory();
private:
};
class ConcreteFactory:public Factory
{
public;
~ConcreteFactory();
ConcreteFactory();
Product *CreateProduct();
protected:
private:
};
#endif
/*Factory.cpp*/
#include "Factory.h"
#include "Product.h"
#include <iostream>
Factory::Factory()
{
}
Factory::~Factory()
{
}
ConcreteFactory::ConcreteFactory()
{
std::cout<<"ConcreteFactory..."<<std::endl;
}
ConcreteFactory::~ConcreteFactory()
{
}
Product *ConcreteFactory::CreateProduct()
{
return new ConcreteProduct();
}
/*main.cpp*/
#include "Factory.h"
#include "Product.h"
#include <iostream>
int main()
{
Factory *fac=new ConcreteFactory();
Product *p=fac->CreateProduct();
return 0;
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈