問題 No.3603
ソフトウェア設計において、オブジェクト指向プログラミングで頻出する設計課題に対する再利用可能な解決策をパターンとしてまとめたものであり、生成、構造、振舞いの3つに大別されるものはどれか。
【正解の解説】
GoFデザインパターン
これは料理における「定番のレシピ集」のようなものです。毎回ゼロから美味しい料理の組み合わせを考えるのは大変ですが、先人が編み出した「黄金の組み合わせ(レシピ)」があれば誰でも美味しい料理が作れるのと同じように、プログラムの設計図の定番の型をまとめたものがGoFデザインパターンです。
スポンサーリンク
【その他の選択肢の解説】
UMLモデリングパターン
UMLは設計図を描くための「共通のルールや記号の書き方」を定めたものであり、それ自体は設計のノウハウ集やパターン集ではありません。建築で例えると、GoFが「耐震性に優れた間取りの知恵袋」であるのに対し、UMLは「図面を描くときの線の太さや記号のルール」にあたります。
リファクタリングカタログ
リファクタリングは、すでに動いている「散らかった部屋の家具を配置し直して綺麗にする」作業のことです。これに対しGoFデザインパターンは「最初から部屋を綺麗に設計して建てるための設計図」なので、タイミングや目的が異なります。試験では「構造の改善」という言葉に惑わされないよう注意しましょう。
アンチパターンテンプレート
アンチパターンは「こう作ると後で大惨事になるという失敗の見本市」のようなものです。問題文にあるような「再利用可能な解決策」ではなく、むしろ「避けるべき罠」を集めたものなので、意味が真逆になります。初学者が陥りがちな「デザインの一種」という思い込みを狙ったひっかけです。