我所理解的設計模式(C++實現)——簡單工廠模式(Simple Factory Pattern)
簡單工廠模式按照設計模式型別分的話是屬於建立型模式,他是工廠模式中最簡單的一種,他不屬於GoF 23中設計模式之一,但是是簡單實用的。他是有一個工廠物件來決定建立哪一種物件的例項。
實現比較簡單,這裡我只貼出類圖和呼叫方法:
呼叫方法:
IProduct * simpleFactory::Create(std::string className)
{
if( className == "Ipad")
return new Ipad();
if(className == "IPhone")
return new IPhone();
}
優點:外界只要傳入類的名字或者識別符即可,不需要關心具體建立過程,只顧“消費”就可以了。各有各的指責和權力,分工明確,利於整個軟體架構優化。
缺點:違反裡高內聚責任分配原則,將全部邏輯放到一個工廠類中,如果需要支援新的類,那就必須改變工廠類了。
這裡只有一種工廠,一個系列的產品,那如果有多個系列的產品呢?問題如何解決?
應用場景:
1. 我的asp.net程式需要根據客戶實際所用資料庫來配置,那麼我的程式支援所有的資料庫,具體用到哪個,配置檔案配置一下即可。這個C#/Java裡的反射就可以實現。
2. MFC裡的Seralize功能。
LCL_data原創於CSDN.NET【http://blog.csdn.net/lcl_data/article/details/8712171】
相關文章
- 簡單工廠模式( Simple Factory Pattern )模式
- 使用C# (.NET Core) 實現簡單工廠(Simple Factory) 和工廠方法設計模式 (Factory Method Pattern)C#設計模式
- PHP設計模式(一)簡單工廠模式 (Simple Factory For PHP)PHP設計模式
- 簡單工廠模式(simple factory)及程式碼實現模式
- 設計模式--抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式--工廠方法模式(Factory Method Pattern)設計模式
- 設計模式-抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式實戰 - 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式實戰 – 抽象工廠模式(Abstract Factory Pattern)設計模式抽象
- 設計模式系列之工廠模式三兄弟(Factory Pattern)設計模式
- 【圖解設計模式系列】The Abstract Factory Pattern: 抽象工廠模式圖解設計模式抽象
- 設計模式-C#實現簡單工廠模式設計模式C#
- 《設計模式》 - 2. 工廠模式( Factory )設計模式
- 設計模式 - 簡單工廠模式設計模式
- 【設計模式】簡單工廠模式設計模式
- 工廠模式(簡單工廠模式)快速理解模式
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- [Design Pattern With Go]設計模式-工廠模式Go設計模式
- 設計模式之簡單工廠模式設計模式
- 設計模式(一)—— 簡單工廠模式設計模式
- java設計模式-簡單工廠模式Java設計模式
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- 設計模式----簡單工廠設計模式
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式 --並不簡單的工廠模式設計模式
- C++ - 簡單工廠模式C++模式
- golang設計模式之簡單工廠模式Golang設計模式
- 設計模式入門-簡單工廠模式設計模式
- 掌握設計模式之簡單工廠模式設計模式
- 23種設計模式(一)---簡單工廠設計模式設計模式
- Java常用設計模式之簡單工廠模式Java設計模式
- 設計模式系列之一:簡單工廠模式設計模式
- Yii2設計模式——簡單工廠模式設計模式
- c#簡單工廠設計模式C#設計模式
- 極簡設計模式-工廠模式設計模式
- 工廠模式之簡單工廠模式模式
- 用Python實現設計模式——工廠模式Python設計模式
- 設計模式 | 簡單工廠模式及典型應用設計模式
- 使用C# (.NET Core) 實現抽象工廠設計模式 (Abstract Pattern)C#抽象設計模式