詳解java中命令行模式的實現(xiàn)
命令模式是一種行為設(shè)計模式,它允許您將請求封裝為對象,以便您可以將其參數(shù)化、隊列化、記錄和撤銷。在 Java 中實現(xiàn)命令模式涉及創(chuàng)建一個命令接口,具體命令類,以及一個接收者類,該接收者類執(zhí)行實際操作。下面是一個簡單的 Java 命令模式示例:
首先,創(chuàng)建一個命令接口(Command):
public interface Command {
void execute();
}然后,創(chuàng)建一個具體命令類,實現(xiàn)該接口:
public class LightOnCommand implements Command {
private Light light;
public LightOnCommand(Light light) {
this.light = light;
}
@Override
public void execute() {
light.turnOn();
}
}創(chuàng)建另一個具體命令類:
public class LightOffCommand implements Command {
private Light light;
public LightOffCommand(Light light) {
this.light = light;
}
@Override
public void execute() {
light.turnOff();
}
}接下來,創(chuàng)建一個接收者類,該類包含實際的操作:
public class Light {
public void turnOn() {
System.out.println("燈已打開");
}
public void turnOff() {
System.out.println("燈已關(guān)閉");
}
}現(xiàn)在,創(chuàng)建一個遙控器類,該類可以設(shè)置命令并執(zhí)行它們:
public class RemoteControl {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void pressButton() {
command.execute();
}
}最后,可以測試這些類:
public class Main {
public static void main(String[] args) {
Light light = new Light();
Command lightOn = new LightOnCommand(light);
Command lightOff = new LightOffCommand(light);
RemoteControl remoteControl = new RemoteControl();
remoteControl.setCommand(lightOn);
remoteControl.pressButton();
remoteControl.setCommand(lightOff);
remoteControl.pressButton();
}
}這是一個簡單的命令模式示例,它演示了如何使用命令對象將操作參數(shù)化,并通過遙控器執(zhí)行這些操作。您可以根據(jù)需要擴展和修改這個示例以滿足特定的需求。
到此這篇關(guān)于詳解java中命令行模式的實現(xiàn)的文章就介紹到這了,更多相關(guān)java命令行模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java多線程提交按照時間順序獲取線程結(jié)果詳解流程
在工作中是否存在這樣的場景,多個線程提交執(zhí)行,你不想全部線程執(zhí)行結(jié)束了獲取結(jié)果,而是有線程完成返回結(jié)果就獲取消費。本文提供該場景的工具類,可以直接用哦2021-11-11
如何利用 Either 和 Option 進行函數(shù)式錯誤處理
這篇文章主要介紹了如何利用 Either 和 Option 進行函數(shù)式錯誤處理。在 Java 中,錯誤的處理在傳統(tǒng)上由異常以及創(chuàng)建和傳播異常的語言支持進行。但是,如果不存在結(jié)構(gòu)化異常處理又如何呢?,需要的朋友可以參考下2019-06-06
如何在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點
這篇文章主要介紹了如何在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Java Kafka實現(xiàn)優(yōu)先級隊列的示例詳解
在分布式系統(tǒng)中,消息隊列是一種常見的異步通信機制,而優(yōu)先級隊列則是消息隊列的一種特殊形式,下面我們來看看如何利用Kafka實現(xiàn)優(yōu)先級隊列吧2025-03-03
java生成csv文件亂碼的解決方法示例 java導(dǎo)出csv亂碼
這篇文章主要介紹了java生成csv文件亂碼的解決方法,大家可以直接看下面的示例2014-01-01
SpringBoot基于RabbitMQ實現(xiàn)消息可靠性的方法
RabbitMQ 提供了 publisher confirm 機制來避免消息發(fā)送到 MQ 過程中丟失,這種機制必須給每個消息指定一個唯一ID,消息發(fā)送到MQ以后,會返回一個結(jié)果給發(fā)送者,表示消息是否處理成功,本文給大家介紹了SpringBoot基于RabbitMQ實現(xiàn)消息可靠性的方法,需要的朋友可以參考下2024-04-04

