//聯(lián)系人:石虎QQ:1224614774昵稱:嗡嘛呢叭咪哄
一、策略設(shè)計模式 簡介
1.概念:
策略模式定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨立于使用它的客戶而獨立變化。
2.應(yīng)用場景:
*一個類在執(zhí)行中使用多個if-else來決定行為。
*需要算法的各種變體。
*對客戶隱藏具體策略(算法)的實現(xiàn)細(xì)節(jié),彼此完全獨立。
二、提出問題
1.如果想封裝一些算法,不想讓算法直接暴露出來?或者項目里面的一些if-else過于復(fù)雜,每個else里都有很多的算法代碼,這些算法可能是一些相似的函數(shù)或者方法?
2.如果能把每個算法封裝成一個對象,那么就能消除根據(jù)類型決定使用什么算法的一些if-else語句,可以考慮使用策略設(shè)計模式。
三、策略模式的優(yōu)缺點
優(yōu)點:
1、提供了管理相關(guān)的算法族的辦法。可以封裝一些算法,不想讓算法直接暴露出來。
2、可以避免使用多重條件轉(zhuǎn)移語句,消除根據(jù)類型決定使用什么算法的一些if-else的語句。
缺點:
1、使用之前必須知道所有的策略,使用中不能動態(tài)改變,在實例話的時候就設(shè)定好需要使用的策略類了。