Command.java
package com.bjsxt.dp.command;
public abstract class Command {
public abstract void execute();
public abstract void unDo();
}
HugCommand.java
package com.bjsxt.dp.command;
public class HugCommand extends Command {
@Override
public void execute() {
System.out.println("hug");
}
@Override
public void unDo() {
System.out.println("open your arms");
}
}
ShoppingCommand.java
package com.bjsxt.dp.command;
public class ShoppingCommand extends Command {
@Override
public void execute() {
System.out.println("zoo");
}
@Override
public void unDo() {
System.out.println("undo zoo");
}
}
Boy.java
package com.bjsxt.dp.command;
import java.util.ArrayList;
import java.util.List;
public class Boy {
private String name;
private List<Command> commands = new ArrayList<Command>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void pursue(MM mm) {
}
public void doSomeThing() {
}
public void addCommand(Command c1) {
this.commands.add(c1);
}
public void executeCommands() {
for(Command c : commands) {
c.execute();
}
}
public void undoCommands() {
//
}
}
MM.java
package com.bjsxt.dp.command;
public class MM {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void order(Boy b) {
Command c1 = new ShoppingCommand();
b.addCommand(c1);
Command c2 = new HugCommand();
b.addCommand(c2);
b.executeCommands();
}
}