簡單工廠模式,工廠模式和抽象工廠模式
SFP(Simple Factory Pattern)通常是根據提供給它的數據,來返回幾個可能類中的一個類的實例。通常它返回的類都有個一個共同的父類和方法,但每個方法的任務不同,而且根據不同的數據進行了優化。
例子1:通過輸入不同格式的名字來返回你的firstname和lastname:
首先是父類:
按照概念,應該有兩個或以上的子類來繼承父類:
最後是簡單工廠類,通過它來判斷應該選擇哪個子類來執行:
運行結果:
例子2:快速傅里葉變換:
因爲在快速傅里葉變換中當y爲零時計算公式比較特殊,所以我們可以把普通情況和特殊的y=0情況視爲和上面那個例子中的firstfirst和lastfirst兩種相似的情況。
經過80次變換後的最終結果:
工廠方法模式:
FMP(Factory Method Pattern)在SFP上升級了,它不再去使用一個類來決定實例化哪個子類,相反超類把決定權延續到每個子類。
例子:
抽象類中定義了很多方法,子類中國重載它的某些方法來實現特殊的功能,例如: