【オブジェクト指向のこころ】第17章 Decoratorパターン 解答

オブジェクト指向のこころ 第17章の練習問題の解答をまとめてみる。

基礎

各Decoratorオブジェクトは何を包み込むのでしょうか?

連結対象オブジェクト(Decoratorかもともとからある機能を表したConcreteComponent)を包み込む.
(p.261)

デコレータの例を2つ挙げてください.
  • ヘッダーとフッター
  • ストリームIO
問題を分割する際,Decoratorパターンはどういう風に使用することができるでしょうか?

Decoratorパターンは,「オブジェクトに新たな機能をどう実装するか」と「オブジェクトの特殊なケースをどう体系化するか」の2つの問題に分解することができる.
(p.265)

「この構造がパターンなのではありません.」Decoratorの本質を考察する際,こういった表現を使用しました.この意味を答えてください.なぜこれが必要となるのでしょうか?

Decoratorパターンは,かならず実行される機能に,別のさまざまな機能を追加したいときに使い所がある.

機械的にパターンを実装すると,悪い設計となってしまうことがある. パターンを適用できるかどうかフォースをよく考えて,パターンの目的と合うかどうかを考えなくてはならない. パターンは絶対ではない.

yusuke-ujitoko.hatenablog.com