オブジェクト指向のこころ 第17章の練習問題の解答をまとめてみる。
基礎
各Decoratorオブジェクトは何を包み込むのでしょうか?
連結対象オブジェクト(Decoratorかもともとからある機能を表したConcreteComponent)を包み込む.
(p.261)
デコレータの例を2つ挙げてください.
- ヘッダーとフッター
- ストリームIO
問題を分割する際,Decoratorパターンはどういう風に使用することができるでしょうか?
Decoratorパターンは,「オブジェクトに新たな機能をどう実装するか」と「オブジェクトの特殊なケースをどう体系化するか」の2つの問題に分解することができる.
(p.265)
「この構造がパターンなのではありません.」Decoratorの本質を考察する際,こういった表現を使用しました.この意味を答えてください.なぜこれが必要となるのでしょうか?
Decoratorパターンは,かならず実行される機能に,別のさまざまな機能を追加したいときに使い所がある.
機械的にパターンを実装すると,悪い設計となってしまうことがある. パターンを適用できるかどうかフォースをよく考えて,パターンの目的と合うかどうかを考えなくてはならない. パターンは絶対ではない.