基本情報技術者試験「デザインパターン」の問題
GoFのデザインパターンのうち、生成するオブジェクトの具体的なクラスを利用側で固定せず、どの具体クラスを生成するかの決定をサブクラスに委ねることで、生成処理と利用処理を分離するパターンはどれか。
アObserverパターン
イStrategyパターン
ウCompositeパターン
エFactory Methodパターン
正解
エ.Factory Methodパターン
Factory Methodパターンは、オブジェクト生成のための操作(ファクトリメソッド)を定義し、どの具体クラスを生成するかの判断をサブクラスに任せる。利用側は具体型に依存せず生成できるため、生成処理と利用処理が分離され、新しい種類の追加が容易になる。設問の説明に正確に合致する。
?選択肢ごとの解説
ア ×Observerパターンは状態変化を依存先へ通知する振る舞いのパターンで、オブジェクト生成の委譲を行うものではない。
イ ×Strategyパターンはアルゴリズムを差し替える振る舞いのパターンで、生成する具体クラスの決定を委ねるものではない。
ウ ×Compositeパターンは個と複合を同一視して木構造を扱う構造のパターンで、生成の委譲を目的とはしない。
エ ○Factory Methodパターンは、オブジェクト生成のための操作(ファクトリメソッド)を定義し、どの具体クラスを生成するかの判断をサブクラスに任せる。利用側は具体型に依存せず生成できるため、生成処理と利用処理が分離され、新しい種類の追加が容易になる。設問の説明に正確に合致する。
✎くわしく
Factory Methodは生成に関するパターンで、『生成の判断を一箇所(サブクラス)に閉じ込める』ことで利用側を具体クラスから切り離す。これにより新しい製品クラスを追加しても利用側のコードを変えずに済む(開放閉鎖原則に資する)。Strategyやobserverが振る舞い、Compositeが構造を扱うのに対し、Factory Methodはインスタンス生成の責務分離を担う点で分類が異なる。
✓本番での押さえどころ
試験のコツ
『どの具体クラスを生成するかをサブクラスに委ねる』『生成と利用を分離』とあればFactory Methodと判断する。
覚え方
Factory=工場。どの製品(具体クラス)を作るかは現場(サブクラス)が決める、とイメージする。
よくある誤り
振る舞い系のStrategyと混同しやすい。Strategyは『処理の切替』、Factory Methodは『生成の委譲』と目的で区別する。
開発技術の他の問題
アジャイル開発の手法であるスクラムにおいて、スプリントごとに動作するソフトウェアを開発チームが実際に作り上げ、その成果物をプ…ソフトウェアのテストにおいて、プログラムの内部構造には着目せず、入力に対する出力が仕様どおりであるかを検証する手法を採用した…あるシステムのファンクションポイント(FP)を見積もったところ、未調整FPは200であった。技術的複雑度を表す調整係数が0.…ソフトウェアの企画から開発・運用・保守・廃棄までの各活動について、取得者と供給者が同じ言葉で役割や作業範囲を取り決められるよ…ある開発プロジェクトでは、要件定義・設計・実装・テストの各工程を上流から下流へ順に進め、前工程の成果物を承認してから次工程へ…開発対象を複数の部分に分け、各部分について計画・リスク分析・開発・評価の活動を繰り返し、評価のたびにリスクを見極めながら少し…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0068