第8章工廠方法模式

2021-09-27 12:30:27 字數 1764 閱讀 2996

一 概念

二 包含的角色

三 優勢

四 簡單工廠vs工廠方法

四 c++**實現

//工廠方法模式

//計算器的例子

#include "pch.h"

#include using namespace std;

//抽象產品類

class operation

double getb() const

void seta(const double number)

void setb(const double number)

virtual double getresult()

protected:

double numbera;

double numberb;

};//下面是四個具體的產品類

class operationadd :public operation

};class operationsub :public operation

};class operationmul :public operation

};class operationdiv :public operation

};//抽象工廠類

class ifactory

};//下面是四個具體工廠類,分別用於產生四個具體產品

class addfactory : public ifactory

~addfactory()

}private:

operation* oper;

};class subfactory : public ifactory

~subfactory()

}private:

operation* oper;

};class mulfactory : public ifactory

~mulfactory()

}private:

operation* oper;

};class divfactory : public ifactory

~divfactory()

}private:

operation* oper;

};int main()

#include "pch.h"

#include #include using namespace std;

class leifeng

virtual void wash()

virtual void buyrice()

};class undergraduate : public leifeng

void wash()

void buyrice()

};class volunteer : public leifeng

void wash()

void buyrice()

};//雷鋒工廠

class ifactory

~ifactory()

}private:

leifeng* oper;

};//生成學雷鋒的大學生的工廠

class undergraduatefactory : public ifactory

};//生成社群志願者的工廠

class voluntee***ctory : public ifactory

};int main()

8 工廠方法模式

簡單工廠和工廠方法!簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。簡單講,簡單工廠 計算器 如果需要擴充套件計算器的功能新增類,然後在工廠中加上else if 這樣的判斷,工廠方法模式相當與把工廠也替換成抽象的...

設計模式8 工廠方法模式

1 簡單工廠模式的侷限 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。但每次擴充套件功能需要修改原有類,不但對擴充套件開放了還對修改也開放了,違背了開放封閉原則。2 工廠方法模式 定義乙個用於建立物件的介面,讓...

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...