CommandとStrategy

CommandパターンとStrategyパターンは何が違うのか考えてみた。静的に見れば(クラス図で見れば)両方同じだけど、それぞれ目的が違う。

  • Commandパターンは「やること」が色々あるときに使う。
  • Strategyパターンは「やりかた」が色々あるときに使う。

こういう理解でよいでしょうか?(誰に聞いてる)

【追記】さわださんからツッコミ。ありがとうございます。

Command パターンを使うのは要求をカプセル化したいとき。Strategy パターンはアルゴリズムカプセル化したいとき。

「要求」(結城さんのデザパタ本だと「命令」)・「アルゴリズム」を言いかえようとした結果「やること」・「やりかた」と思いついたんですが、「要求」なんだから「やること」ではなく「やらせること」ですね。つい語呂の良さに惹かれて書いてしまいましたが、本質を分かってない証拠か。全然理解が足りないぞ>自分。