首頁 > Java > java教程 > Java設計模式之命令模式的實戰應用

Java設計模式之命令模式的實戰應用

王林
發布: 2024-05-09 21:15:01
原創
621 人瀏覽過

問題:如何套用指令模式?步驟:建立命令介面以定義所有命令的公共介面。實作命令介面以建立具體命令,封裝特定動作。建立呼叫者類別以向命令發送請求。建立接收者類別以執行由命令請求的動作。

Java設計模式之命令模式的實戰應用

Java設計模式:指令模式的實戰應用程式

概述

指令模式是一種行為設計模式,它透過將請求與執行請求的物件解耦來向物件和客戶端提供鬆散耦合。

如何套用

要實作指令模式,需要建立下列類別:

  • 指令介面:定義所有命令的公共介面。
  • 具體指令:實作指令介面並執行特定動作。
  • 呼叫者:向指令發送請求。
  • 接收者:執行由指令請求的動作。

實戰案例

以下是使用指令模式實作遙控器的Java 範例:

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

// 具体命令:开电视
class TurnOnCommand implements Command {
    private Television television;

    public TurnOnCommand(Television television) {
        this.television = television;
    }

    @Override
    public void execute() {
        television.turnOn();
    }
}

// 具体命令:关电视
class TurnOffCommand implements Command {
    private Television television;

    public TurnOffCommand(Television television) {
        this.television = television;
    }

    @Override
    public void execute() {
        television.turnOff();
    }
}

// 调用者:遥控器
class RemoteControl {
    private List<Command> commands;

    public RemoteControl() {
        commands = new ArrayList<>();
    }

    public void addCommand(Command command) {
        commands.add(command);
    }

    public void pressButton() {
        for (Command command : commands) {
            command.execute();
        }
    }
}

// 接收者:电视
class Television {
    public void turnOn() {
        System.out.println("电视已打开");
    }

    public void turnOff() {
        System.out.println("电视已关闭");
    }
}

// 主方法
public class Main {
    public static void main(String[] args) {
        // 创建电视
        Television television = new Television();

        // 创建命令
        Command turnOnCommand = new TurnOnCommand(television);
        Command turnOffCommand = new TurnOffCommand(television);

        // 创建遥控器并添加命令
        RemoteControl remoteControl = new RemoteControl();
        remoteControl.addCommand(turnOnCommand);
        remoteControl.addCommand(turnOffCommand);

        // 按下遥控器的按钮
        remoteControl.pressButton();
    }
}
登入後複製

在這個範例中,TurnOnCommandTurnOffCommand 類別實作了Command 介面並封裝了開啟和關閉電視機的動作。 RemoteControl 類別扮演呼叫者的角色,負責向命令發送請求。 Television 類別作為接收者,接收並執行請求的動作。

透過這種方式,指令模式將動作與執行動作的物件解耦,提高了系統的靈活性、可擴展性和可維護性。

以上是Java設計模式之命令模式的實戰應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板