命令模式
1 創建一個命令接口:
package commandpattern;
public interface Command {
void execute();
}
2 創建一個接收命令並執行的 類
package commandpattern;
public class Receiver {
public void action(){
System.out.println("執行了具體的操作");
}
}
3 創建一個 請求者,發出命令請求:
package commandpattern;
public class Invoker {
private Command mCommand;
public Invoker(Command mCommand) {
this.mCommand = mCommand;
}
public void action(){
mCommand.execute();
}
}
4 創建一個命令實體類,通過構造方法註冊命令接收者,傳遞命令:
package commandpattern;
public class ConcretCommand implements Command{
private Receiver mReceiver;
public ConcretCommand(Receiver mReceiver) {
this.mReceiver = mReceiver;
}
@Override
public void execute() {
mReceiver.action();
}
}
5 執行整個命令傳遞過程:
package commandpattern;
public class Client {
public static void main(String[] args) {
//構造一個接收者對象
Receiver receiver = new Receiver();
//根據接收者對象,構造一個命令者變量,指向具體命令着對象
Command concretCommand = new ConcretCommand(receiver);
//根據命令着 對象,構造一個請求者對象,多態屬性
Invoker invoker = new Invoker(concretCommand);
//請求者發出請求行爲
invoker.action();
}
}
輸出結果:執行了命令的操作