平成27年度 秋期 システムアーキテクト試験 午前Ⅱ 問4
テクノロジ/開発技術オブジェクト指向設計における設計原則のうち,開放・閉鎖原則はどれか。
出典:平成27年度 秋期 システムアーキテクト試験 午前Ⅱ 問4
- アクラスにもたせる役割は一つだけにするべきであり,複数の役割が存在する場合にはクラスを分割する。
- イクラスを利用するクライアントごとに異なるメソッドが必要な場合は,インタフェースを分ける。
- ウ上位のモジュールは,下位のモジュールに依存してはならない。
- エモジュールの機能には,追加や変更が可能であり,その影響が他のモジュールに及ばないようにする。
正解:エ
解説
開放・閉鎖原則(OCP:Open-Closed Principle)は,オブジェクト指向設計における SOLID 原則の一つであり,“ソフトウェアの構成要素(クラスやモジュールなど)は,拡張に対して開いていて(オープン),修正に対して閉じていなければならない”という原則です。すなわち,新しい機能の追加や仕様変更を行う際に,既存のモジュールのコードそのものを変更するのではなく,モジュールを拡張することによって対応でき,かつ,その変更の影響が他のモジュールに及ばないように設計すべきであるという考え方です。
選択肢ごとの解説
- ア誤り。クラスにもたせる役割を一つだけにするという記述は,単一責任の原則(SRP)の説明です。
- イ誤り。クライアントごとに異なるメソッドが必要な場合にインタフェースを分けるという記述は,インタフェース分離の原則(ISP)の説明です。
- ウ誤り。上位のモジュールが下位のモジュールに依存してはならないという記述は,依存性逆転の原則(DIP)の説明です。
- エ正しい。モジュールの機能に追加や変更が可能であり,その影響が他のモジュールに及ばないようにするという記述は,開放・閉鎖原則(OCP)の説明です。