簡介

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 讓演算法可互換,提升系統彈性。