工廠方法(factory method)模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。
工廠方法模式是
簡單工廠模式的衍生,解決了許多簡單工廠模式的問題。首先完全實現『開-閉 原則』,實現了可擴充套件。其次更複雜的層次結構,可以應用於產品結果複雜的場合。
下面的**是在前面簡單工廠模式上修改的,可以參考一下區別,**裡面有注釋。
//
// main.cpp
// factory
//// created by ben_22 on 14-5-28.
//#include #include "string"
using namespace::std;
class operation;
class operationadd : public operation
};class operationsub : public operation
};class operationmul : public operation
};class operationdiv : public operation
return _numbera/_numberb;
}};/*下面為簡單工廠模式*/
/*違背了開閉原則
*每次新加運算都要在operationfactory類新增case修改類。
*/class operationfactory
return oper;
};};/*下面為工廠方法模式*/
/*工廠方法對簡單工廠做了進一步抽象, 多了乙個factory類,這個類將不再負責具體的產品生產,而是只制定一些規範,具體的生產工作由其子類去完成。
*/class factory;
class factoryadd : public factory
};class factorysub : public factory
};class factorymul : public factory
};class factorydiv : public factory
};int main(int argc, const char * argv)
大話設計模式 工廠方法模式
大話設計模式 雷鋒依然在人間 工廠方法模式 class leifeng public void wash public void buyrice 學雷鋒的大學生 class undergraduate extends leifeng 學雷鋒的社會志願者 class volunteer extends...
大話設計模式 工廠方法模式
一 工廠方法模式定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。二 工廠方法模式結構圖 三 工廠方法模式例項 簡單工廠模式的演算法,在增加新的演算法時,除了新增加演算法類,同時還需要修改工廠類。繼續完善,在增加新的演算法時,不修改工廠類,而是單獨修改...
大話設計模式 工廠方法模式
我們先來回顧一下簡單工廠模式 這是我的關於工廠模式的部落格,裡面有乙個關於運算的例題,我們今天還是用這個例題。簡單工廠模式uml類圖 我們再來看一下工廠方法模式關於運算類的uml類圖 好,我們把兩張類圖放在一起來看,首先,他們有很大的不同對不對,其次,你會發現其實工廠方法模式看起來更為麻煩,那我們為...