■目的
機能を組み合わせて新たな機能を作成する場合や、機能を実行時に付け外したい場合に役に立つパターン。
代表的な実装例として、java.ioパッケージの各種APIが挙げられる。
■メリット
- オブジェクトに動的に機能を追加できる
- 機能の組み合わせが容易である
■考慮事項
- Componentで定義するメソッドを必要最小限にした方がよい。Componentが複雑になると、柔軟性が失われる可能性がある。
- Decoratorパターンを使うと、よく似ている小さなクラスがたくさん作られてしまうという欠点もある。
■関連しているパターン
- Adapterパターン
- Strategyパターン

コメントを残す