開発技術
GoFのデザインパターンのうち、アルゴリズムをカプセル化してクライアントコードを変更せずに実行時に別のアルゴリズムへ切り替えられるパターンはどれか。
ア.Singletonパターン
イ.Strategyパターン正解
ウ.Observerパターン
エ.Decoratorパターン
解説
Strategyパターンはナビアプリの経路計算に例えられます。「最短距離」「最短時間」「高速道路優先」という複数の戦略(アルゴリズム)を持ち、ユーザが選択するだけで計算ロジックが切り替わります。ナビ本体(クライアント)のコードを変えずに。
なぜ イ が正解か
Strategyパターンはアルゴリズムをインターフェースで抽象化し、具体的な実装を独立したクラス(ConcreteStrategy)として定義します。Contextクラスはインターフェース経由でStrategyを呼ぶため、実行時にStrategyを差し替えることができます。利点:OCP(Open/Closed Principle)を満たし、if-elseの増殖を防ぎます。イが正解です。
出典: AI生成問題(学習用)