メソッド追加の方法のクラス図 |
このクラス図より、UserLocatorクラスはUserインタフェースのみに関連関係があり、具象クラス(Student、Teacher、Staffクラス)には依存(関連)していないことが分かります。 このことから、条件分岐による方法は以下の問題があることが分かります。 「移植性のなさ」:設計の再利用が困難 「硬さ」:設計変更が困難 この解答はUserインタフェースを実装したクラスの追加には、オープン・クローズド原則(Open-Closed Principle)を満たしていると言います。 良い設計か悪い設計かを理解するためにはクラス図等により設計(クラスの構造)がどの様になっているかを理解する必要があります。 |
---|---|
オープン・クローズド原則(Open-ClosedPrinciple) |
ソフトウェアの構成要素(クラス、メソッド等)は拡張に関しては開いて(オープン)、修正に対して閉じて(クローズド)いなければなりません。 |
補足 |
printUsersメソッドはインタフェースによるポリモフィズムをうまく利用しています。 |
ポリモフィズム |
インタフェースが同じでもオブジェクトにより振る舞いが異なることをポリモフィズムと言います。 |