Strategyパターンとは?すとらてじぱたーん
Strategyパターンとは、アルゴリズムを共通インタフェースを持つ独立した部品として切り出し、実行時に差し替えられるようにする設計様式。条件分岐の塊が消え、新しい方式の追加を既存コードへ手を入れずに行える。どれを使うかを決めるのは外側の呼出し側である。
最終更新:2026-10-06
エンベデッドSPを最短で暗記・合格する →背景
製品系列のなかで制御方式だけが違う、という状況は組込みでは日常的に起きる。方式ごとに分岐を足していくと、共通部分を直すたびに全機種の検証をやり直すことになる。可変な部分を一つのインタフェースの裏へ押し込めば、変わるのは差し替える部品だけになり、プロダクトラインの可変点として管理できる。
具体例
温調機器で、オンオフ制御・PID制御・モデル予測制御を「操作量を計算する」という同じインタフェースで実装し、機種や運転モードで差し替える。C言語なら関数ポインタの構造体で同じ構造が組め、テーブルをROMに置けるのでRAMを増やさずに済む。
試験での引っ掛け
Stateと取り違えやすい。外から明示的に差し替えるのがStrategy、内部状態の遷移に応じて振舞いが自動的に変わるのがStateで、構造が似ていても切替えを誰が決めるかが違う。処理の骨組みを継承で固定するTemplate Methodとは、継承か委譲かで分かれる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。