簡介
策略模式(Strategy Pattern)是一種行為型設計模式,它允許在運行時動態選擇算法或行為。核心思想是將算法封裝成獨立的類(策略),使它們可以相互替換,讓算法的變化獨立于使用它的客戶端。
核心思想
-
解耦:將算法的定義與使用分離。每個算法封裝起來,使它們可以互換使用。
-
封裝變化:將可能變化的算法封裝成獨立的策略類。
-
多態替代條件分支:通過接口/抽象類調用策略,避免復雜的
if-else
或switch-case
。
實現方式
角色 | 說明 |
---|---|
Context(上下文) | 持有一個策略對象的引用,通過接口調用具體策略。 |
Strategy(策略接口) | 定義所有策略的公共接口(通常是抽象類或接口)。 | <