質問: コマンドパターンを適用するにはどうすればよいですか?手順: コマンド インターフェイスを作成して、すべてのコマンドに共通のインターフェイスを定義します。コマンド インターフェイスを実装して、特定のコマンドを作成し、特定のアクションをカプセル化します。コマンドにリクエストを送信するための呼び出し元クラスを作成します。コマンドによって要求されたアクションを実行するレシーバー クラスを作成します。
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(); } }
この例では、TurnOnCommand
和 TurnOffCommand
类实现了 Command
接口并封装了打开和关闭电视机的动作。RemoteControl
类扮演调用者的角色,负责向命令发送请求。Television
クラスは受信者として機能し、要求されたアクションを受信して実行します。
このように、コマンド パターンはアクションを、それを実行するオブジェクトから切り離し、システムの柔軟性、拡張性、保守性を向上させます。
以上がJavaデザインパターン・コマンドパターンの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。