コマンドモードコマンド
キューを要求したり、要求をログに記録し、取り消し可能操作をサポートし、我々は、異なるクライアントがパラメータを要求使用できるように、これは、オブジェクトに対する要求をカプセル化します。アクションアクションモードでは、トランザクションのトランザクションモード:としても知られています
コマンドは、関連する操作はアクターの複数を含む、より高いスケーラビリティを有する前後のコマンドは、コマンド複数のケースを行ってもよいし、発行されました
構造:
-command抽象コマンドクラス
(受信機が保持クラス)-ConcreteCommand特定のコマンド・クラス
-Invoker、発信者/要求者(Commandクラスを開催し、直接パフォーマーと相互作用しません)
-receiverレシーバ/エグゼクティブ
- クライアント
一般的なシナリオの開発:
-Struts2、コマンドモードであり全体の呼処理アクション
- データベースの基本的な取引メカニズムの実現
- アンドゥやリドゥのコマンド
例:受注、プロセスの実行
/ **
*実際のコマンド実行
* @author帆入るコード
*
* /
publicクラス受信{
公共ボイドアクション(){
System.out.printlnは( "Receive.actionを()");
}
}
ボイドは(実行); //実行
}
クラスが実装するコマンド{ConcreteCommand
; //コンテナ、コマンド実行の複数であってもよいプライベート受け取る受信
公共ConcreteCommand {(受信する受信)
スーパー()と、
受信this.receiveを= ;
}
公共ボイドは、実行(){
receive.action()。
}
}
/ **
*コマンド発信
* @authorセイル入るコード
*
* /
publicクラス呼び出し{
プライベートコマンドコマンド; //は、複数のコマンド保持する容器であってもよい
公的を呼び出す(コマンドコマンド){
スーパー();
this.commandコマンド=;
}
公共ボイドコール(){
のCommand.Execute();
}
}
パブリッククラスクライアント{
パブリック静的無効メイン(文字列[] args){
コマンドC =新しいConcreteCommand(新しい受信())。
I =新しい起動(c)を呼び出します。
電話する();
}
}