LoginSignup
0
2

More than 5 years have passed since last update.

Strategyパターン

Last updated at Posted at 2016-12-13

概要

振る舞いに関するデザインパターン。
Strategyは英語で「戦略」。ここでいう「戦略」とはアルゴリズム(一連の処理)のこと。

Strategyパターンはアルゴリズムを分離(クラス化)することで、
処理の切り替えをしていこうとする考えかた。

コードの実装例

以下参照

メリットのまとめ

  • 処理をクラス化して分離しておくことで、追加の実装や変更による影響が限定される

Template Methodパターンと違う所

解決方法はちがうけれど、似ている問題はTemplate Methodパターンでも解決できる。
Template Methodパターンは、親クラスに不変の抽象的な処理を記述し、継承した子クラスが具体的な実装をして、アルゴリズムの変更に対応するものだった。Template Methodを利用することで、重複している処理を記述せずに実装することができたが、問題は、継承しているため親クラスに依存をしてしまっていること。
Strategeパターンは、継承を行わずにアルゴリズムに対応するパターン。継承じゃなくて委譲を利用するのでStrategyのほうがより影響範囲が限定されている。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2