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