大話設計模式之簡單工廠模式

最近有一位朋友向我推薦了一本書《大話設計模式》,這本書剛剛送到手上,我還沒開始閱讀,希望通過博文的方式與大家一起分享,一起學習。

簡單工廠模式的核心思想是,將創建對象的過程封裝在一個單獨的類中,這樣就可以通過這個類來實例化不同的對象。例如,如果我們需要增加開根運算等新的運算類型,我們只需要在這個類中進行擴展即可,這就是工廠模式的魅力所在。讓我們來看看這個類的實現方法。

簡單運算工廠類如下所示:

class OperationFactory {     static createOperate(operate) {         let oper = null;         switch (operate) {             case "+":                 oper = new OperationAdd();                 break;             case "-":                 oper = new OperationSub();                 break;             case "*":                 oper = new OperationMul();                 break;             case "/":                 oper = new OperationDiv();                 break;         }         return oper;     } }

通過這個工廠類,我們只需要輸入運算符號,工廠就會實例化出相應的運算對象。利用多態性,通過返回父類的方式,我們可以實現計算器的功能。

客戶端代碼的實現如下:

let oper; oper = OperationFactory.createOperate("+"); oper.NumberA = 1; oper.NumberB = 2; let result = oper.GetResult();

無論你是編寫控制臺程序、windows程序、Web程序、PDA還是手機程序,都可以使用這段代碼來實現計算器的功能。如果有一天我們需要更改加法運算,我們只需要修改OperationAdd類即可。同樣,如果我們需要增加其他復雜的運算,比如平方根、立方根、自然對數、正弦和余弦等,我們只需要增加相應的運算子類,并在工廠類的switch語句中增加新的分支即可。

不知不覺已經寫到了結尾,這就是簡單的工廠模式。以下是幾個類的結構圖,供大家參考。

大話設計模式之簡單工廠模式

設計模式還有很多,期待后續的更新。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享