//Commandå£°ææ§è¡æä½çæ¥å£ abstract class Command { protected Receiver receiver; public Command(Receiver receiver) { this.receiver = receiver; } public abstract void execute(); } //creteCommandå°ä¸ä¸ªæ¥æ¶è 对象ç»å®äºä¸ä¸ªå¨ä½ãè°ç¨æ¥æ¶è ç¸åºçæä½ï¼ä»¥å®ç°Executeã class CommandImpl extends Command { public CommandImpl(Receiver receiver) { super(receiver); } public void execute() { receiver. receive (); } } //Invokerè¦æ±è¯¥å½ä»¤æ§è¡è¿ä¸ªè¯·æ±ã class Invoker { private Command command; public void setCommand(Command command) { this.command = command; } public void execute() { command.execute(); } } //Receiverç¥éå¦ä½å®ç°ä¸æ§è¡ä¸ä¸ªè¯·æ±ç¸å ³çæä½ãä»»ä½ç±»é½å¯è½ä½ä¸ºä¸ä¸ªæ¥æ¶è ã class Receiver { public void receive() { System.out.println("This is Receive class!"); } } public class DS14_Command{ public static void main(String[] args) { Receiver rec = new Receiver(); Command cmd = new CommandImpl(rec); Invoker i = new Invoker(); i.setCommand(cmd); i.execute(); } }