令和3年度秋期 応用情報技術者試験 午前 問48
図は,ある図形描画ツールのクラス図の一部である。新たな形状や線種で図形を描画する機能の追加を容易にするために,リファクタリング“継承の分割”を行った。変更後のクラス図はどれか。

※選択肢ア〜エは上の図表内に記載されています。
解答・解説を見る
正解:ウ
AI解説
「継承の分割」は、1つのクラス階層の中に複数の独立した変化の軸(観点)が混在している場合に、それぞれの軸ごとに別の継承階層へ分離するリファクタリング技法である。図形描画ツールでは「形状の種類」と「線種・描画方法」という2つの変化軸が1つの継承階層に混在していたものを、形状の階層と線種(描画方法)の階層に分けることで、新しい形状や線種の追加時に既存クラスへの影響を抑えられるようにする。 ア: 設問の図(クラス図)を参照して判断する選択肢であり、継承の分割の考え方(1階層に混在する複数の変化軸をそれぞれ独立した継承階層へ分ける)に合致するかどうかで正誤を判断する。 イ: 設問の図(クラス図)を参照して判断する選択肢であり、変化軸が依然として1つの継承階層に混在したままであれば「継承の分割」がなされていないため誤りとなる。 ウ: 正しい(公式解答)。形状の種類の階層と線種・描画方法の階層とを分離した構成になっており、新たな形状・線種の追加が互いに影響し合わずに行えるようになっている点が「継承の分割」の狙いに合致する。 エ: 設問の図(クラス図)を参照して判断する選択肢であり、変化軸の分離が不十分・不適切であれば誤りとなる。 💡 「継承の分割」は、GoFのデザインパターンでいうBridgeパターンの考え方(抽象と実装を分離し、それぞれ独立に拡張できるようにする)に近い発想であると理解しておくと類題に強くなる。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。