设计模式-工厂模式

来源:互联网 发布:中标麒麟数据库 编辑:程序博客网 时间:2024/05/22 06:06

//Factory.h#pragma once class Product;class Factory{public:virtual ~Factory()=0;virtual Product* CreateProduct() = 0;protected:Factory();private:};class BeverageFactory : public Factory{public:BeverageFactory();~BeverageFactory();virtual Product* CreateProduct();private:};class WineryFactory :public Factory{public:WineryFactory();~WineryFactory();virtual Product* CreateProduct();private:};


//Product.h#pragma once class Product{public:virtual ~Product() = 0;protected:Product();private:};class BeverageProduct :public Product{public:BeverageProduct();~BeverageProduct();private:};class WineryProduct:public Product{public:WineryProduct ();~WineryProduct ();private:};


//Factory.cpp#include "stdafx.h"#include "Factory.h"#include "Product.h"Factory::Factory(){}Factory::~Factory(){}Product* BeverageFactory::CreateProduct(){returnnewBeverageProduct();}BeverageFactory::BeverageFactory(){printf("建起了饮料厂\n");}BeverageFactory::~BeverageFactory(){}Product* WineryFactory::CreateProduct(){returnnewWineryProduct();}WineryFactory::WineryFactory(){printf("建起了酒厂\n");}WineryFactory::~WineryFactory(){}


//Product.cpp#include "stdafx.h"#include "Product.h"Product::Product(){}Product::~Product(){}BeverageProduct::BeverageProduct(){printf("生产出了饮料\n");}BeverageProduct::~BeverageProduct(){}WineryProduct::WineryProduct(){printf("生产出了茅台酒\n");}WineryProduct ::~WineryProduct(){}

//main.cpp#include "stdafx.h"#include "Factory.h"#include "Product.h"int _tmain(int argc, _TCHAR* argv[]){Factory * fac1 = new BeverageFactory;Factory * fac2 = new WineryFactory;fac1->CreateProduct();fac2->CreateProduct();return 0;}




0 0
原创粉丝点击