命令模式

AddCommond.java

Client.java

Command.java

Invoker.java

SayCommand.java


让命令得执行和发布解耦 

   软件实体应该对扩展开发,而对修改封闭


   命令执行不知道具体执行命令得是什么类,只有执行类的上层接口

   执行只通过接口去执行命令,接口有很多实现类,但是每个类都实现接口的具体细节,有的负责增加,有的负责减法。

具体看你怎么给命令的接口什么样的实现类

public class Invoker {

private Command command;


public void setCommand(Command command) {

this.command = command;

}


public void comm() {

command.execute();

}


}

public interface Command {


public void execute();

}

public class AddCommond implements Command {


@Override

public void execute() {

System.err.println("add");

}


}

public class SayCommand implements Command {


@Override

public void execute() {

System.err.println("say");

}


}

public class Client {

public static void main(String[] args) {


Invoker invoker = new Invoker();


Command command = new AddCommond();


invoker.setCommand(command);


invoker.comm();

}


}




你可能感兴趣的:(命令模式)