輕松掌握J(rèn)ava命令模式
定義:請(qǐng)求以命令的形式包裹在對(duì)象中,并傳給調(diào)用對(duì)象。調(diào)用對(duì)象尋找可以處理該命令的合適的對(duì)象,并把該命令傳給相應(yīng)的對(duì)象,該對(duì)象執(zhí)行命令。
特點(diǎn):
1、降低了系統(tǒng)耦合度。
2、新的命令可以很容易添加到系統(tǒng)中去。
企業(yè)級(jí)開發(fā)和常用框架中的應(yīng)用:事務(wù),struts的action控制器
實(shí)例:
public class Demo { public static void main(String[] args) { Reicever reicever = new Reicever(); Command command = new ActualCommand(reicever); Invoker invoker = new Invoker(); invoker.addCommand(command); invoker.call(); } } /** * 命令真正的執(zhí)行者,對(duì)于不同的命令可能有不同的命令執(zhí)行者 */ class Reicever{ public void action(){ System.out.println("Reicever.action()"); } } /** * 命令接口,也為了后面統(tǒng)一后面的命令 */ interface Command{ public void excute(); } /** * 實(shí)際命令對(duì)象,可能有很多不同的命令對(duì)象 */ class ActualCommand implements Command{ private Reicever reicever; public ActualCommand(Reicever reicever) { this.reicever = reicever; } public void excute() { reicever.action(); } } /** * 命令發(fā)出者 */ class Invoker{ private List<Command> commands = new ArrayList<>(); public void addCommand(Command command){ commands.add(command); } public void call(){ for(Command c:commands){ c.excute(); } } }
命令模式單獨(dú)是用的情況很少,一般都是和備忘錄模式組合是用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java面向接口編程之簡(jiǎn)單工廠模式示例
- 淺談Java面向接口編程
- 解析Java設(shè)計(jì)模式編程中命令模式的使用
- Java設(shè)計(jì)模式之命令模式(Command模式)介紹
- 詳解Java設(shè)計(jì)模式編程中命令模式的項(xiàng)目結(jié)構(gòu)實(shí)現(xiàn)
- 23種設(shè)計(jì)模式(17)java命令模式
- 深入理解java三種工廠模式
- 代理模式之Java動(dòng)態(tài)代理實(shí)現(xiàn)方法
- Java代碼重構(gòu)的幾種模式詳解
- Java中的觀察者模式實(shí)例講解
- Java面向接口編程之命令模式實(shí)例詳解
相關(guān)文章
SpringBoot解決@Component無法注入其他Bean的問題
這篇文章主要介紹了SpringBoot解決@Component無法注入其他Bean的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)
這篇文章主要介紹了Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01java模擬post請(qǐng)求發(fā)送json的例子
本篇文章主要介紹了java模擬post請(qǐng)求發(fā)送json的例子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08詳解springcloud之服務(wù)注冊(cè)與發(fā)現(xiàn)
本次分享的是關(guān)于springcloud服務(wù)注冊(cè)與發(fā)現(xiàn)的內(nèi)容,將通過分別搭建服務(wù)中心,服務(wù)注冊(cè),服務(wù)發(fā)現(xiàn)來說明,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-06-06Java多線程生產(chǎn)者消費(fèi)者模式實(shí)現(xiàn)過程解析
這篇文章主要介紹了Java多線程生產(chǎn)者消費(fèi)者模式實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03基于SpringBoot項(xiàng)目遇到的坑--Date入?yún)栴}
這篇文章主要介紹了SpringBoot項(xiàng)目遇到的坑--Date入?yún)栴},具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10