最近有一位朋友向我推薦了一本書《大話設計模式》,這本書剛剛送到手上,我還沒開始閱讀,希望通過博文的方式與大家一起分享,一起學習。
簡單工廠模式的核心思想是,將創建對象的過程封裝在一個單獨的類中,這樣就可以通過這個類來實例化不同的對象。例如,如果我們需要增加開根運算等新的運算類型,我們只需要在這個類中進行擴展即可,這就是工廠模式的魅力所在。讓我們來看看這個類的實現方法。
簡單運算工廠類如下所示:
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語句中增加新的分支即可。
不知不覺已經寫到了結尾,這就是簡單的工廠模式。以下是幾個類的結構圖,供大家參考。
設計模式還有很多,期待后續的更新。