簡介
Strategy Pattern(策略模式)是一種行為型設計模式,定義一系列演算法,並使它們可以互換。
問題
當需要在執行時動態切換演算法或行為時。
解決方案
將演算法封裝在獨立類別,並透過介面互換。
C# 範例
public interface IStrategy {
void Execute();
}
public class ConcreteStrategyA : IStrategy {
public void Execute() { Console.WriteLine("策略A"); }
}
public class ConcreteStrategyB : IStrategy {
public void Execute() { Console.WriteLine("策略B"); }
}
public class Context {
private IStrategy _strategy;
public Context(IStrategy strategy) { _strategy = strategy; }
public void SetStrategy(IStrategy strategy) { _strategy = strategy; }
public void DoAction() { _strategy.Execute(); }
}
結論
Strategy Pattern 讓演算法可互換,提升系統彈性。