0
点赞
收藏
分享

微信扫一扫

进工厂——工厂方法模式

八怪不姓丑 2022-04-13 阅读 55

工厂方法模式

在这里插入图片描述

工厂方法模式UML

#pragma once
#include <iostream>

#define SAFE_DELETE(ptr) if(ptr!=NULL){delete ptr; ptr = NULL;}

using namespace std;

//抽象产品
class Product
{
public:
	virtual void Product_introduction() = 0;
};

//水果手机
class Fruit_Phone : public Product
{
	virtual void Product_introduction() { cout << "水果手机创新十足" << endl; }
};

//五谷手机
class WuGu_Phone : public Product
{
	virtual void Product_introduction() { cout << "五谷手机性价比强悍" << endl; }
};

//抽象工厂
class Factory 
{
public:
	virtual Product* createProduct() = 0;
};

//富土康工厂
class FuTuK_Factory : public Factory
{
public:
	virtual Product* createProduct() { return new Fruit_Phone; }
};

//新西方工厂
class XinXiF_Factory : public Factory
{
public:
	virtual Product* createProduct() { return new WuGu_Phone; }
};

int main()
{
	//富土康工厂的产品
	Factory* a = new FuTuK_Factory;
	Product* aP = a->createProduct();
	aP->Product_introduction();

	//新西方工厂的产品
	Factory* b = new XinXiF_Factory;
	Product* bP = b->createProduct();
	bP->Product_introduction();

	SAFE_DELETE(a)
	SAFE_DELETE(aP)
	SAFE_DELETE(b)
	SAFE_DELETE(bP)

	return 0;
}
举报

相关推荐

0 条评论