UML圖
代碼結構
public class Barbecuer {
public void bakeChicken() {
System.out.println("烤雞腿");
}
public void bakeMutton() {
System.out.println("烤羊肉");
}
}
public class ChickenCommand implements Command {
private Barbecuer receiver;
public ChickenCommand(Barbecuer receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.bakeChicken();
}
}
public class Client {
public static void main(String[] args) {
Barbecuer chef = new Barbecuer();
ChickenCommand chickenCommand = new ChickenCommand(chef);
MuttonCommand muttonCommand = new MuttonCommand(chef);
Waiter girl = new Waiter();
girl.setCommand(chickenCommand);
girl.setCommand(muttonCommand);
girl.executeCommand();
}
}
public interface Command {
void execute();
}
public class MuttonCommand implements Command {
private Barbecuer receiver;
public MuttonCommand(Barbecuer receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.bakeMutton();
}
}
public class Waiter {
private List<Command> commands = new ArrayList<>();
//添加訂單
public void setCommand(Command command) {
commands.add(command);
}
public void executeCommand() {
for(Command command : commands) {
command.execute();
}
}
}