1 策略模式簡介
策略模式將可變的部分從程序中抽象分離成算法接口,在該接口下分別封裝一系列算法實現,並使他們可以相互替換,從而導致客戶端程序獨立於算法的改變。
1.1 什麼是組合?
在類中增加一個私有域,引用另一個已有的類的實例,通過調用引用實例的方法從而獲得新的功能,這種設計被稱作組合(複合)。
1.2 策略模式的優點
(1)使用了組合,使架構更加靈活
(2)富有彈性,可以較好的應對變化(開--閉原則)
(3)更好的代碼複用性(性對於繼承)
(4)消除大量的條件語句
1.3 策略模式的缺點
(1)客戶代碼需要了解每個策略實現的細節。
(2)增加了對象的數目
1.4 策略模式使用場景
(1)許多相關的類僅僅是行爲上的差異
(2)運行時選取不同的算法變體。
(3)通過條件語句在多個分支中選取。
可參考博客:https://blog.csdn.net/qq_32175491/article/details/79465496