メインコンテンツまでスキップ

まとめ

パターン比較レビュー

パターン適用条件強み注意点よく使うシーン
State状態に応じて処理を変えたい責務分離・状態遷移の明示化状態が少ないと過剰設計になることもステップ制御、ワークフロー、UI モード切替
Strategy状態を外部から渡して処理を変えたい処理の差し替えに強い状態遷移は別に制御が必要アルゴリズム切り替え、割引処理
Command状態ではなく操作内容の違いを扱う実行履歴・Undo/Redo がしやすい状態遷移や制御には向かないバッチ処理、キュー、操作履歴

まとめと選び方の指針

  • 状態ごとの処理分岐が増えてきたら → State パターンを検討
  • 状態遷移は不要で処理だけ変えたいなら → Strategy
  • 実行命令や履歴の扱いが主眼なら → Command

実際の設計会話での使い分けヒント

  • この状態ごとの処理、State パターンで分けたらテストもしやすくなりますよ
  • 処理自体は外から差し替えるだけなら Strategy でも良さそうですね
  • 状態管理というより操作履歴を扱いたいなら、Command パターンで持たせるのもあり