工厂模式及C++代码实现

    Factory顾名思义是工厂的意思,即生产对象的工厂。它解决的问题是对象的创建,将对象的创建进行封装,并且把对象的创建放到子类中实现。 
                                                                                                                                                                                                  2014年4月10日
/*工厂模式的两个功能:(1)定义创建对象的接口,封装对象的创建
                      (2)把对象的创建放到子类中实现*/
#include<iostream>
#include<string>
using namespace std;
class Product
{
public:
	void printf_result()
	{
		cout << "产品:" << product << endl;
		cout << "检验结果:" << result << endl;
		cout << "产品负责人:" << person << endl;
		cout << endl << endl;
	}
protected:
	char *result;
	char *product;
	char *person;
};

class ProductA:public Product
{
public:
	ProductA()
	{
		product = "A产品";
		result = "合格";
		person = "马君";
	}
};

class ProductB :public Product
{
public:
	ProductB()
	{
		product = "B产品";
		result = "不合格";
		person = "李四";
	}
};

class ProductC :public Product
{
public:
	ProductC()
	{
		product = "C产品";
		result = "不合格";
		person = "张三";
	}
};

class ProductFactory //产品工厂
{
public:
	static Product*create_product(string kind)
	{
		if (strcmp("A产品", kind.c_str()) == 0)
			return new ProductA;
		else if (strcmp("B产品", kind.c_str()) == 0)
			return new ProductB;
		else if (strcmp("C产品", kind.c_str()) == 0)
			return new ProductC;
		else return NULL;
	}
};

int main(void)
{
	Product*A = ProductFactory::create_product("A产品");
	A->printf_result();
	Product*B = ProductFactory::create_product("B产品");
	B->printf_result();
	Product *C = ProductFactory::create_product("C产品");
	C->printf_result();
	delete(A);
	delete(B);
	delete(C);
	return 0;
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值