引き続きデザインパターンのお勉強。
- 作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努
- 出版社/メーカー: ピアソン桐原
- 発売日: 2009/04/01
- メディア: 単行本
- 購入: 13人 クリック: 220回
- この商品を含むブログ (57件) を見る
前回のTemplate Methodは決まった手順を踏む処理の複数のバリエーションに対応する方法論だった。
しかし、バリエーションによって手順そのものが異なるような場合に対応出来ず、また各バリエーションを実装した後で手順を追加修正するのは困難である。
そこで用いられるのが4章の「Strategy Method」である。
使いドコロ
基本的には前回のとTemplate Method同様に同じ用途に用いる複数バリエーションを持つ処理の実装に用いる。
実装
前回のTemplate Methodではバリエーション毎に基底クラスを継承したクラスを用いるのに対して、今回のStrategy Methodでは開始時にバリエーション毎の処理そのものを引き渡すことにより対応する。
前回のTemplate Methodでは共通の骨格に対してガワを取り替えていくイメージであるのに対して、今回のStrategy Methodでは共通のガワに対して用途に応じて骨格を入れ替えていくイメージとなる。
前回のTemplateMethodでは、バリエーションを増やす際に個々の処理の中身を記述すれば良く、最小限の実装のみで済む。
今回のStrategyMethodでは、バリエーションを増やす場合にクラスに渡すための処理全体を記述する必要性がある。
一方で手順そのものが異なるような場合も記述できるという利点がある。