溫馨提示×

java命令模式怎樣運用

小樊
95
2024-11-25 00:45:28
欄目: 編程語言

命令模式(Command Pattern)是一種行為設計模式,它允許你將一個請求封裝為一個對象,從而使你可以使用不同的請求、隊列或日志請求參數化其他對象。此外,它還支持可撤銷的操作。在Java中,命令模式通常涉及以下幾個角色:

  1. 命令接口(Command):定義一個執行操作的方法。
  2. 具體命令(Concrete Command):實現命令接口,并在其方法中調用接收者的方法來完成命令要執行的操作。
  3. 接收者(Receiver):執行與請求相關的操作。
  4. 調用者(Invoker):要求該命令執行這個請求。
  5. 客戶端(Client):創建具體命令對象,并將其傳遞給調用者以執行命令。

下面是一個簡單的Java命令模式的例子:

// 命令接口
interface Command {
    void execute();
}

// 接收者
class LightOnCommand implements Command {
    Light light;

    public LightOnCommand(Light light) {
        this.light = light;
    }

    @Override
    public void execute() {
        light.on();
    }
}

// 調用者
class RemoteControl {
    Command command;

    public void setCommand(Command command) {
        this.command = command;
    }

    public void pressButton() {
        command.execute();
    }
}

// 具體命令
class Light {
    public void on() {
        System.out.println("Light is ON");
    }

    public void off() {
        System.out.println("Light is OFF");
    }
}

// 客戶端
public class Client {
    public static void main(String[] args) {
        Light light = new Light();
        Command lightOnCommand = new LightOnCommand(light);

        RemoteControl remoteControl = new RemoteControl();
        remoteControl.setCommand(lightOnCommand);
        remoteControl.pressButton();
    }
}

在這個例子中,我們有一個Light類,它有兩個方法:on()off()。我們創建了一個LightOnCommand類,它實現了Command接口,并在其execute()方法中調用了Light類的on()方法。RemoteControl類作為調用者,它有一個Command類型的成員變量,可以通過setCommand()方法設置具體命令,并通過pressButton()方法執行命令。

在客戶端代碼中,我們創建了一個Light對象和一個LightOnCommand對象,然后將LightOnCommand對象設置為RemoteControl對象的命令,最后調用RemoteControl對象的pressButton()方法來打開燈。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女