読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++によるデザインパターン22: Commandパターン

増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

  • 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本
  • 購入: 21人 クリック: 711回
  • この商品を含むブログ (210件) を見る

Commandパターン

Commandパターンは、

あるクラスへの要求をクラスのオブジェクトにしてしまう

デザインパターンです。


あるクラスへの要求は、

普通そのクラスのメンバ関数を呼ぶことによって実現しますが、

非常に多くの設定情報を必要とする、複雑な要求をしたい場合には、

引数が多くなってしまい、関数が複雑化し、

ソフトの可読性が落ちてしまいます。


また、要求のUndoやRedo、

要求の履歴の利用などをしたい時に、

このソフト構成のままでは難しいという問題があります。


これらの問題を解決するために、

あるクラスへの要求をクラスとしてまとめ、

そのCommandクラスのオブジェクトを渡すようにします。

これにより、複雑な要求内容をクラスの中にまとめることができます。


また、この要求のクラスオブジェクトをリストで管理することにより、

UndoやRedo、履歴管理などが簡単に実現できるようになります。


C++によるサンプルコード

下記のGitHubページにて公開しています。

cpp/Command.cpp at master - AtsushiSakai/cpp

参考資料

myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com


増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

  • 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本
  • 購入: 21人 クリック: 711回
  • この商品を含むブログ (210件) を見る