
you are here
517
12
章
Compound
パターン
何をしたの?
たくさんのQuackable クラスから始めました。
ガチョウがやって来て、自分もQuackableのように振る舞いたいと言い出しました。そこで、
Adapterパターンを使ってガチョウを
Quackable
に適合させました。これで、アダプタにラップ
されたガチョウで
quack()
を呼び出すと、ガチョウはガチョウの鳴き声で鳴くようになりました!
そして、カモの鳴き声学者はカモの鳴き声を数えたいと考えました。そこで、Decoratorパター
ンを使って
quack()
が呼び出された回数を記録する
QuackCounter
デコレータを追加し、ラップ
している
Quackable
に
quack()
を委譲しました。
しかし、カモの鳴き声学者はQuackCounter デコレータを追加し忘れていないか心配しました。
そこで、Abstract Factory パターンを使ってカモを作成するようにしました。その結果、カモが
必要なときにはいつでも、ファクトリにカモを求めるとファクトリが装飾されたカモを返しま
した(それに装飾されていないカモが必要な場合は、別のカモファクトリも使えます!)。
カモ、ガチョウ、Quackableのすべてを把握するという管理上の問題が発生しました。そこで、
Compositeパターンを使って
Quackable
を
Flock
(群れ)にまとめました。また、このパターン
では、カモの鳴き声学者がサブ
Flock
を作成してカモの集合を管理できました。この実装では ...