一起來學設計模式(2) 簡單工廠模式

2021-05-27 21:10:53 字數 1602 閱讀 1834

其實,在gof的23種設計模式中,並沒有簡單工廠模式這種說法,為了和工廠模式 、抽象工廠模式逐一對比,我們還是先從簡單工廠模式說起。

「工廠」即用來生產「產品」,考慮以下需求:

我需要通過乙個建立乙個蘋果,或者是建立乙個,或者是建立乙個。

在上邊的需求中,這個可以建立蘋果、梨、香蕉的類即為簡單工廠類。同時,蘋果、梨、香蕉都為水果,可以繼承自水果類。設計如下:

**如下:

/**

* @file ******factory.h

* @brief

* @author don hao

* @date 2011-9-1 15:20:40

* @version

*
email:[email protected]
*
company:
*

modification:
*
write modifications here.
*/

#ifndef _******factory_h

#define _******factory_h

#include #include class fruit

virtual ~fruit()

};

};class pear : public fruit

virtual ~pear()

};class banana : public fruit

virtual ~banana()

};class ******factory

~******factory()

fruit* createfruit(std::string str)

if ("pear" == str)

if ("banana" == str)

else

}};#endif /**< _******factory_h */

/**

* @file ******factory.cpp

* @brief

* @author don hao

* @date 2011-9-1 15:20:39

* @version

*
email:[email protected]
*
company:
*

modification:
*
write modifications here.
*/

#include "******factory.h"

void main()

為了緊湊起見,類的定義放到了標頭檔案中。

通過******factory可以建立不同的水果,其有以下幾個明顯的特點:

2. 當需要增加一種新的型別的產品時,需要修改工廠方法

一起學設計模式 02 工廠模式

如果你還沒了解六大軟體設計原則的話,建議先谷歌下,再來學習設計模式。這對理解設計模式和記憶設計模式的經典寫法都會有很大幫助。學習設計模式,光是記寫法沒有意義,要學習的是設計思想,為什麼要這麼做,這麼做的好處是什麼。懷著這兩個問題來學習設計模式,你會發現六大軟體設計原則在設計模式中的應用,相應的也會加...

一起來學設計模式(5) 介面卡模式

生活中,我們將插頭插在插座上來取電,到了有些國家,插座格式不支援插頭,理論上,可以有以下三種做法 1.將插頭改裝一下,使之符合插座 2.將插座改裝一下,使之符合插頭 3.找乙個介面卡,介於插頭和插座之間 無疑,前兩種實現方法代價比較大,而且不靈活。比如,採用第一種方法,回國後還得改裝回來。對於第三種...

面向面試學習,一起來玩工廠設計模式

工廠設計模式算是經常在專案中使用的設計模式,屬於建立型模式,可以理解為建立物件的設計模式。應用場景 根據業務情況需建立不同型別的物件,且物件又存在相似的業務邏輯,此時需要將建立物件的責任交由工廠類,工廠類會基於輸入建立物件。該場景是根據自己的理解 在查閱資料時看到有人講工廠設計模式分為三類,簡單工廠...