コマンドモードのGOF23デザイナーパターン

コマンドモードコマンド

キューを要求したり、要求をログに記録し、取り消し可能操作をサポートし、我々は、異なるクライアントがパラメータを要求使用できるように、これは、オブジェクトに対する要求をカプセル化します。アクションアクションモードでは、トランザクションのトランザクションモード:としても知られています

コマンドは、関連する操作はアクターの複数を含む、より高いスケーラビリティを有する前後のコマンドは、コマンド複数のケースを行ってもよいし、発行されました

構造:

-command抽象コマンドクラス

(受信機が保持クラス)-ConcreteCommand特定のコマンド・クラス

-Invoker、発信者/要求者(Commandクラスを開催し、直接パフォーマーと相互作用しません)

-receiverレシーバ/エグゼクティブ

- クライアント

一般的なシナリオの開発:

-Struts2、コマンドモードであり全体の呼処理アクション

- データベースの基本的な取引メカニズムの実現

- アンドゥやリドゥのコマンド

例:受注、プロセスの実行

/ **
 *実際のコマンド実行
 * @author帆入るコード
 *
 * /
publicクラス受信{
  公共ボイドアクション(){
   System.out.printlnは( "Receive.actionを()");
  }
}

コマンドインタフェース{公共
  ボイドは(実行); //実行
}
クラスが実装するコマンド{ConcreteCommand
  
 ; //コンテナ、コマンド実行の複数であってもよいプライベート受け取る受信
 
 公共ConcreteCommand {(受信する受信)
  スーパー()と、
  受信this.receiveを= ;
 }
 @Override
 公共ボイドは、実行(){
  receive.action()。
 }
}

/ **
 *コマンド発信
 * @authorセイル入るコード
 *
 * /
publicクラス呼び出し{
  プライベートコマンドコマンド; //は、複数のコマンド保持する容器であってもよい
  公的を呼び出す(コマンドコマンド){
   スーパー();
   this.commandコマンド=;
  }
  公共ボイドコール(){
   のCommand.Execute();
  }
}

パブリッククラスクライアント{
パブリック静的無効メイン(文字列[] args){
 コマンドC =新しいConcreteCommand(新しい受信())。
 I =新しい起動(c)を呼び出します。
 電話する();
}
}

おすすめ

転載: www.cnblogs.com/code-fun/p/11362647.html