詳解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ù)需要擴(kuò)展和修改這個示例以滿足特定的需求。
到此這篇關(guān)于詳解java中命令行模式的實現(xiàn)的文章就介紹到這了,更多相關(guān)java命令行模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud?Eureka服務(wù)注冊與發(fā)現(xiàn)實踐
本文介紹了Eureka的基本概念、服務(wù)注冊與發(fā)現(xiàn)流程、單機(jī)和集群搭建方法,以及心跳續(xù)約和自我保護(hù)機(jī)制,通過實際操作和測試,驗證了Eureka在微服務(wù)架構(gòu)中的重要性和可靠性2026-03-03
java中http請求之restTemplate配置超時時間問題解決
這篇文章主要介紹了java中http請求之restTemplate配置超時時間,本文給大家分享三種解決方法,結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
Java如何獲取List<String>中的String詳解
工作了這么長時間了,一直沒有記錄的習(xí)慣,以至于導(dǎo)致我即便是查過的東西總會忘記,下面這篇文章主要給大家介紹了關(guān)于Java如何獲取List<String>中String的相關(guān)資料,需要的朋友可以參考下2022-02-02
SpringBoot雪花算法主鍵ID傳到前端后精度丟失問題的解決
本文主要介紹了SpringBoot雪花算法主鍵ID傳到前端后精度丟失問題的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

