91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
大厂| 石河子市| 洮南市| 芜湖市| 毕节市| 红河县| 聂拉木县| 峨眉山市| 松桃| 博兴县| 铜山县| 石柱| 临朐县| 永春县| 永善县| 新绛县| 道孚县| 桐庐县| 资中县| 昔阳县| 洛宁县| 马尔康县| 于田县| 常山县| 恩平市| 岗巴县| 台东市| 孟连| 华阴市| 安康市| 榕江县| 云安县| 清涧县| 北流市| 竹山县| 上林县| 郎溪县| 萝北县| 伊吾县| 通山县| 台东市|