
UML图:
Command角色:
public abstract class Command {
protected Receiver receiver;
public Command(Receiver receiver) {
this.receiver = receiver;
}
public void setReceiver(Receiver receiver) {
this.receiver = receiver;
}
abstract void execute();
}
ConcreteCommand角色:
public class ConcreteCommand extends Command {
public ConcreteCommand(Receiver receiver) {
super(receiver);
}
@Override
public void execute() {
receiver.action();
}
}
Receiver角色:
public interface Receiver {
void action();
}
ConcreteReceiver角色:
public class ConcreteReceiver implements Receiver {
@Override
public void action() {
System.out.println("executing one kind command");
}
}
Invoker角色:封装命令请求
public class Invoker {
private Command command;
public Invoker(Command command) {
this.command = command;
}
public void setCommand(Command command) {
this.command = command;
}
public void call(){
command.execute();
}
}
Client角色:
public static void main(String[] args){
Receiver receiver = new ConcreteReceiver();
Command command = new ConcreteCommand(receiver);
//command.execute();
Invoker invoker = new Invoker(command);
invoker.call();
}




近期评论