設計模式—工廠模式

1. 工廠模式的由來

    軟件開發過程中,經常會需要創建“某個對象”,而該對象卻又經常變化。但用戶需要一個穩定的接口。這就誕生了工廠模式,隔離了該對象的變化,使得系統中其他對象不受其變化的影響,擁有穩定的接口。

 

2. 類圖

 

   

 

3. 示例代碼

 

#include <iostream>
using namespace std;

//產品的抽象類
class Product
{
public:
	virtual void produce()=0;
};

//雞翅類,繼承產品的抽象類
class chickenWing:public Product
{
	void produce()
	{
		cout<<"產生一個雞翅!"<<endl;
	}
};

//雞腿類,繼承產品的抽象類
class drumstick:public Product
{
	void produce()
	{
		cout<<"產生一個雞腿!"<<endl;
	}
};

//工廠抽象類
class Factory
{
public:
	virtual Product* getProduct()=0;
};

//產生雞腿的抽象類
class wingFactory:public Factory
{
public:
	Product* getProduct()
	{
		return new chickenWing;
	}
};

//產生雞翅的抽象類
class drumFactory:public Factory
{
public:
	Product* getProduct()
	{
		return new drumstick;
	}
};

int main()
{
	//產生一個雞翅
	Factory* winFac=new wingFactory;
	Product* winPro=winFac->getProduct();
	winPro->produce();

	//產生一個雞腿
	Factory* drumFac=new drumFactory;
	Product* drumPro=drumFac->getProduct();
	drumPro->produce();

	return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章