コマンドパターン
6223 ワード
オブジェクトとして要求をカプセル化します.これにより、異なるリクエスト、キュー、ログリクエストを持つクライアントをパラメータ化し、undo操作をサポートします.
コマンド:操作 を実行するためのインターフェースを宣言する ConcreteCommand :受信オブジェクトとアクションのバインドを定義します.受信機 の対応する操作を起動することによって実行を実行しますクライアント:ConcreteMommandオブジェクトを作成して、そのレシーバ をセットします Invooker :要求を実行するためにコマンドに尋ねる レシーバー:要求を実行することに関連する操作を実行する方法を知っています. コード
参加者
コード
public class Main {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker();
invoker.setCommand(command);
invoker.executeCommand();
}
}
public abstract class Command {
protected Receiver receiver;
public Command(Receiver receiver) {
this.receiver = receiver;
}
public abstract void execute();
}
public class ConcreteCommand extends Command {
public ConcreteCommand(Receiver receiver) {
super(receiver);
}
@Override
public void execute() {
receiver.action();
}
}
public class Receiver {
public void action() {
System.out.println("Called Receiver.action()");
}
}
public class Invoker {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void executeCommand() {
command.execute();
}
}
出力
Called Receiver.action()
エディエルジュリアン61
/
デザインパターン
メインデザインパターン
アイドル・ Sep 27・ 1分読む
#designpatterns
#creational
#structural
#behavioral
Reference
この問題について(コマンドパターン), 我々は、より多くの情報をここで見つけました
https://dev.to/eidher/command-pattern-36f
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public class Main {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker();
invoker.setCommand(command);
invoker.executeCommand();
}
}
public abstract class Command {
protected Receiver receiver;
public Command(Receiver receiver) {
this.receiver = receiver;
}
public abstract void execute();
}
public class ConcreteCommand extends Command {
public ConcreteCommand(Receiver receiver) {
super(receiver);
}
@Override
public void execute() {
receiver.action();
}
}
public class Receiver {
public void action() {
System.out.println("Called Receiver.action()");
}
}
public class Invoker {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void executeCommand() {
command.execute();
}
}
Called Receiver.action()
エディエルジュリアン61 / デザインパターン
メインデザインパターン
アイドル・ Sep 27・ 1分読む
#designpatterns
#creational
#structural
#behavioral
Reference
この問題について(コマンドパターン), 我々は、より多くの情報をここで見つけました https://dev.to/eidher/command-pattern-36fテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol