開発技術

基本情報技術者試験デザインパターン」の問題

マネジメント系開発技術難易度:normal
GoFのデザインパターンのうち、システム全体で特定のクラスのインスタンスがただ一つだけ生成されることを保証し、その唯一のインスタンスへ共通のアクセス手段を提供するパターンはどれか。
Observerパターン
Singletonパターン
Factory Methodパターン
Strategyパターン
正解
Singletonパターン

Singletonパターンは、コンストラクタを外部から呼べないようにし、唯一のインスタンスを内部で保持して共通のアクセスメソッドで取得させることで、システム全体でインスタンスがただ一つであることを保証する。設問の『唯一のインスタンスと共通アクセス』に正確に合致する。

?選択肢ごとの解説

ア ×Observerパターンはあるオブジェクトの状態変化を依存先へ自動通知する振る舞いのパターンで、インスタンス数を制限する目的のものではない。
イ ○Singletonパターンは、コンストラクタを外部から呼べないようにし、唯一のインスタンスを内部で保持して共通のアクセスメソッドで取得させることで、システム全体でインスタンスがただ一つであることを保証する。設問の『唯一のインスタンスと共通アクセス』に正確に合致する。
ウ ×Factory Methodパターンは生成するオブジェクトの種類をサブクラスに委ねる生成のパターンで、唯一性の保証を目的としない。
エ ×Strategyパターンはアルゴリズムを差し替え可能にする振る舞いのパターンで、インスタンスの一意性とは関係がない。

くわしく

GoFパターンは生成・構造・振る舞いの3分類で整理される。SingletonとFactory Methodは生成に関するパターン、ObserverとStrategyは振る舞いに関するパターンである。Singletonの肝は『コンストラクタの隠蔽+唯一インスタンスの保持+共通取得口』の三点で、設定情報やログ出力など全体で共有したい資源に使われる。乱用は密結合を招くため注意も必要である。

本番での押さえどころ

試験のコツ

『ただ一つだけ』『唯一のインスタンスへアクセス』とあればSingletonと判断する。

覚え方

Singleton=Single(唯一)+ton、まさに『たった一つ』と語の意味で覚える。

よくある誤り

生成系のFactory Methodと混同しやすい。Singletonは『数を一つに限定』、Factory Methodは『生成種類を委譲』と目的で区別する。

開発技術の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0066

【基本情報技術者試験】デザインパターンの問題 — 解答・解説|ukamiru 過去問