簡介

State Pattern(狀態模式)是一種行為型設計模式,允許物件在內部狀態改變時改變其行為。

問題

當物件的行為依賴於狀態,且狀態會改變時。

解決方案

將每個狀態封裝成獨立類別,物件根據狀態切換行為。

C# 範例

public interface IState {
    void Handle();
}
public class ConcreteStateA : IState {
    public void Handle() { Console.WriteLine("狀態A"); }
}
public class Context {
    private IState _state;
    public void SetState(IState state) { _state = state; }
    public void Request() { _state.Handle(); }
}

結論

State Pattern 讓狀態切換更清晰、易於維護。