復習:Composite

Composite

今回はCompositeパターンの復習です。
Compositeパターンはあるオブジェクトとそれらを格納するオブジェクトを同一視したパターンです。
オブジェクトを格納するクラスと、格納されるオブジェクトを表現したクラスは共に同一のスーパークラスを持ちます。
ディレクトリとファイル、木構造などに見られる、再帰的な構造を表現するときにも使われるようです。


オーバーライド
何らかの処理を行うメソッドをスーパークラスに持たせます。
メソッドのオーバーライドを利用し、拡張性を高めています。

例えば、全てのオブジェクトに対して何らかの処理を行うメソッドを記述するとき、スーパークラスに対する処理のみを書いておけば、そのメソッドは非常に短い行数で書くことが出来るでしょう。
サブクラスには目もくれず、スーパークラスについてのみ着目することで、メソッドの抽象性を高めています。

抽象性の高いメソッドは、オブジェクトを新たに追加するときに効果を発揮します。
新たなオブジェクトを追加したとしても、一括処理を行うメソッドに変更を加える必要はありません。
サブクラスがどのような働きをしようと、スーパークラスに書かれているメソッドがオーバーライドされていれば、一括処理のメソッドは滞りなく動作するからです。
このようにCompositeパターンは拡張性の高い木構造を構成するパターンでした。。