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