1.策略模式的定義:
定義一系列的算法,將他們一個個封裝起來,並且使他們可以互相替換,他的目的是將算法的使用和算法的實現分離開,通俗的講就是:定義一系列算法,將他們各自封裝成策略類,算法被封裝在策略內部的方法裏,在客戶對context發起請求時,context總是把請求委託給這些策略對象中間的某一個進行計算
2.JavaScript版的策略模式
我們可以用一個名爲calculate的函數來計算每個人的獎金數額:
最初的代碼實現:
這樣寫函數缺乏彈性,複用性差
策略模式實現:
3.策略模式的優缺點:
優點:
1.可以有效避免多重條件選擇語句
2.提供了開放-封閉的完美支持。將算法封裝在獨立的策略類裏面,使他們易於切換,易於擴展
缺點:
1.會在程序裏增加許多策略類
2.要使用策略模式,必須瞭解所有的策略類,瞭解各個策略方法之間的不同點