Factory模式(工廠模式 創建型)

Factory模式,可分爲2種,一種爲簡單Factory模式,另一種爲Factory方法模式,這2種都是使用廣泛的Factory模式,側重點不同,優缺點也不同。

一 簡單Factory模式

意圖:定義一個工廠類,讓調用客戶端決定工廠生產哪一種產品。

何時使用:屏蔽產品生產細節,根據用戶輸入條件來抉擇。

這種模式中,工廠類扮演上帝的角色,用戶告訴工廠類需要什麼樣的產品,工廠類就去創造出來,沒有則返回null。

在此處創建產品,可以使用兩種方法創建:

1)定義一個創建函數,根據參數的不同來創建不同的產品;


2)定義多個創建函數,根據函數的不同來創建出不同的產品。



二 Factory方法模式

意圖:定義一個創建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行。

主要解決:主要解決接口選擇的問題。

何時使用:我們明確地計劃不同條件下創建不同實例時。

如何解決:讓其子類實現工廠接口,返回的也是一個抽象的產品。

關鍵代碼:創建過程在其子類執行。

在這種模式中,有一個工廠基類,並在該工廠基類中聲明瞭唯一的創建產品的接口(pure virtual)。具體地要創建什麼樣的產品,由工廠的子類來決定,實例化。


即工廠基類不去實例化產品,創建過程在子類中執行。

對比:相比於簡單Factory模式,Factory方法模式的開閉原則更強,一旦有新的成員添加進來,並不會修改原先類的內容。而是創建一組遵循工廠基類和產品基類定義的方式,就可以正常運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章