平成27年度 秋期 システムアーキテクト試験 午前Ⅱ 問4
オブジェクト指向設計における設計原則のうち,開放・閉鎖原則はどれか。
解答・解説
正解: エ. モジュールの機能には,追加や変更が可能であり,その影響が他のモジュールに及ばないようにする。
オブジェクト指向設計における代表的な設計原則である SOLID原則 の中から、開放・閉鎖原則(OCP: Open-Closed Principle) の定義を問う問題です。
開放・閉鎖原則(OCP) とは、「ソフトウェアの構成要素(クラス、モジュール、関数など)は、拡張に対して開いて(Open)おり、修正に対して閉じて(Closed)いなければならない」という原則です。すなわち、既存のコードを変更することなく(他のモジュールに影響を及ぼさず)、新しい機能を追加・拡張できるように設計すべきであることを意味します。したがって、正解は エ です。
各選択肢の解説
- ア:単一責任の原則(SRP: Single Responsibility Principle) の説明です。1つのクラスが持つ役割(変更される理由)は1つだけであるべきとする原則です。
- イ:インタフェース分離の原則(ISP: Interface Segregation Principle) の説明です。クライアントが利用しないメソッドへの依存を強制しないよう、汎用的な1つのインタフェースよりもクライアントに特化した複数のインタフェースに分けるべきとする原則です。
- ウ:依存性逆転の原則(DIP: Dependency Inversion Principle) の説明です。上位モジュールは下位モジュールに依存してはならず、両者とも抽象(インタフェースなど)に依存すべきとする原則です。
- エ:開放・閉鎖原則(OCP: Open-Closed Principle) の説明であり、正解です。