《大話設計模式》java實現之命令模式

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();
        }
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章