设计模式-工厂模式

//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()
{
	return	new	BeverageProduct();
}


BeverageFactory::BeverageFactory()
{
	printf("建起了饮料厂\n");
}

BeverageFactory::~BeverageFactory()
{

}



Product* WineryFactory::CreateProduct()
{
	return	new	WineryProduct();
}


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;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值