中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java命令模式怎樣運用

小樊
81
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
许昌市| 临高县| 卢氏县| 民权县| 新宾| 紫阳县| 吴堡县| 通道| 德阳市| 施秉县| 周宁县| 建宁县| 宁晋县| 麦盖提县| 巫溪县| 托克托县| 大埔区| 建瓯市| 卢龙县| 岳西县| 石台县| 聂拉木县| 石嘴山市| 会宁县| 梁河县| 班玛县| 巴青县| 商南县| 清水县| 湖口县| 齐河县| 巴东县| 沐川县| 濮阳县| 鲁山县| 四会市| 南安市| 佳木斯市| 大同县| 普兰县| 资溪县|