簡介
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 讓狀態切換更清晰、易於維護。