平成27年度 秋期 午前Ⅱ 問4
設計
開放・閉鎖原則に関する問題
オブジェクト指向設計における設計原則のうち,開放・閉鎖原則はどれか。
- アクラスにもたせる役割は一つだけにするべきであり,複数の役割が存在する場合にはクラスを分割する。
- イクラスを利用するクライアントごとに異なるメソッドが必要な場合は,インタフェースを分ける。
- ウ上位のモジュールは,下位のモジュールに依存してはならない。
- エモジュールの機能には,追加や変更が可能であり,その影響が他のモジュールに及ばないようにする。
答えと解説を見る
✓ これが正解エモジュールの機能には,追加や変更が可能であり,その影響が他のモジュールに及ばないようにする。
解説
開放・閉鎖原則は、拡張に開き、変更の影響を閉じ込める原則です。
開放・閉鎖原則は、モジュールは拡張に対して開いていて、修正に対して閉じているべきだという設計原則です。見分ける軸は、機能を足したり変えたりしても他のモジュールへ影響が広がらないことを述べているかどうかです。機能の追加や変更ができ、しかもその影響が他のモジュールに及ばないようにするという記述は、この二つの面をそのまま表しています。ほかの記述は、単一責任・インタフェース分離・依存関係逆転という、よく並べて挙げられる別の設計原則の説明です。開放は拡張できること、閉鎖は既存部分を変えずに済むこと、と二語の向きを分けて覚えると、ほかの原則と混同しません。
ほかの選択肢はなぜ違うのか
- アクラスにもたせる役割は一つだけにするべき…:クラスの役割を一つに絞り、複数あれば分割するという記述は、単一責任の原則の説明です。変更の理由を一つにする考え方であり、拡張と影響の閉じ込めを述べる原則とは焦点が違います。
- イクラスを利用するクライアントごとに異なる…:利用するクライアントごとにインタフェースを分けるという記述は、インタフェース分離の原則の説明です。使わないメソッドへの依存を避ける考え方で、機能追加時の影響範囲を扱う原則ではありません。
- ウ上位のモジュールは,下位のモジュールに依…:上位のモジュールが下位のモジュールに依存してはならないという記述は、依存関係逆転の原則の説明です。依存の向きを抽象へそろえる考え方であり、拡張と修正の関係を述べたものではありません。
出典:平成27年度 秋期 システムアーキテクト試験 午前Ⅱ 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)