一、uml圖
二、包括的角色
簡單工廠模式包括三個角色:
(1)工廠類factory:工廠類是用來製造產品的。
因此,在factory中有乙個用於製造產品的create函式或者generate函式之類的函式。這個函式可以依據「識別符號」的不同生成不同的concreteproduct,當然這些concreteproduct都是繼承自abstractproduct的。
(2)抽象產品類abstractproduct:抽象產品是從其它詳細產品抽象出來的。
抽象產品類僅僅有乙個。
(3)詳細產品類concreteproduct:詳細產品類繼承自抽象產品類,能夠有多個。當須要新增新的產品的時候就新增乙個繼承自抽象產品類的詳細產品類就可以。
三、優勢:
實現了松耦合。當須要新增一種新產品(在大話設計模式中,樣例是 運算operation),僅僅須要做兩點修改:
(1)新增乙個繼承自抽象產品(抽象的運算)的詳細產品(一種詳細的運算);
(2)在工廠類中,switch中,新增一種依據識別符號產生新運算的case就可以。
四、c++實現
(1)**
#include #include using namespace std;
//抽象產品類
class operation
double getb()
void seta(double number)
void setb(double number)
virtual double getresult() };
//以下是四種詳細產品類
class operationadd:public operation
};class operationsub:public operation
};class operationmul:public operation
};class operationdiv:public operation
};//工廠類
大話設計模式C 實現 第18章
一 uml圖 二 概念 備忘錄 memento 在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將物件恢復到原先儲存的狀態。三 說明 角色 1 originator 發起人 負責建立乙個memento,用以記錄當前時刻它的內部狀態,並可以使用備忘錄恢復內部狀態...
大話設計模式C 實現 第25章
一 uml 二 概念 中介者模式 mediator 用乙個中介物件來封裝一系列的物件互動。中介者使各物件不需要顯示地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。三 說明 角色 1 colleague 抽象同事類。2 concreteclleague 具體同事類,每個具體同事只知道自...
大話設計模式簡單工廠模式c 實現
大部分都是大話設計模式上的案例,工廠方法對著簡單工廠寫的,和書上案例不一致 include using namespace std 簡單工廠模式 抽象類 class abstractoperation protected int numbera 0 int numberb 0 具體實現類 class...