詳解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();
}
}接下來(lái),創(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ù)化,并通過(guò)遙控器執(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)建和傳播異常的語(yǔ)言支持進(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),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
Java Kafka實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列的示例詳解
在分布式系統(tǒng)中,消息隊(duì)列是一種常見的異步通信機(jī)制,而優(yōu)先級(jí)隊(duì)列則是消息隊(duì)列的一種特殊形式,下面我們來(lái)看看如何利用Kafka實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列吧2025-03-03
java生成csv文件亂碼的解決方法示例 java導(dǎo)出csv亂碼
這篇文章主要介紹了java生成csv文件亂碼的解決方法,大家可以直接看下面的示例2014-01-01
SpringBoot基于RabbitMQ實(shí)現(xiàn)消息可靠性的方法
RabbitMQ 提供了 publisher confirm 機(jī)制來(lái)避免消息發(fā)送到 MQ 過(guò)程中丟失,這種機(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)依賴的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

