Strategyパターン
最近、変更が容易なプログラムの必要性を実感しているので、デザインパターンをなるべく自分の言葉でまとめてみようと思う。
まずはStrategyパターンについて
概要
GoFのカタログによると
アルゴリズムの集合を定義し、各アルゴリズムをカプセル化して、それらを交換可能にする。Strategyパターンを利用することで、アルゴリズムを、それを利用するクライアントからは独立に変更することができるようになる。
一部のアルゴリズムが異なるようなクラスの作成を容易に行えるようになって便利ということ。
将来変更・追加がアルゴリズムの部分に起きそうな場合、デザインパターンの原則に従い具体的なアルゴリズムの実装はカプセル化しておく。
クライアントごとに利用するアルゴリズムを選べるようにもなり便利である。
クラス図
コンテキストごとのアルゴリズムの違いは、具体的なアルゴリズムの呼び出しをStrategyクラスに移譲することで実現している
感想
Javaに慣れる意味でも他のパターンについても実装してみようと思う。次はDecoratorパターンあたりにするかもしれない。
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る
以前捻挫したGoFに再挑戦したが、オブジェクト指向に慣れたのか以外に分かりやすく感じた。
サンプルコードが実践的であること、他の入門書にはない細かなメリット・デメリットについての記述があるのも良かった。
利用例はさっぱりわからなかったが特にきにする必要もないだろう