復習:Decorator

今回はDecoratorパターンの復習です。

Decorator
Decoratorパターンは、あるクラスを別のクラスに内包させ、そこで機能付加を行うパターンです。
内包するクラスは内包されるクラスを継承しています。
これがこのパターンのキモでしょう。
このように機能追加されたクラスとそうでないクラスの区別を付けないことによって、機能追加を容易にしているわけです。
スーパークラスとそのサブクラスの同一視、この抽象性はオブジェクト指向における重要な概念のひとつですね。
何かを作るとき、設計するときにこういったことを頭の隅に置きながら作業をすると良い仕事が出来るのかもしれません。


DecoratorパターンはCompositeパターンと同じく、再帰的な表現を伴うパターンです。

DecoratorとCompositeの違い
Compositeは再帰的な「構造」に着目しており、Decoratorでは再帰的に機能を付加させていくことに着目しているという点で違いがあります。
両パターンにも共通した箇所がありますが、そういった箇所は見た目が似ているだけで、使用目的は大きく異なるという事なのでしょう。
書かれているコードの目的を把握しながらコードを読んだり書いたりするのはコードを理解する上でとても重要ですね。