欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java設(shè)計模式中的命令模式介紹

本篇內(nèi)容主要講解“Java設(shè)計模式中的命令模式介紹”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java設(shè)計模式中的命令模式介紹”吧!

創(chuàng)新互聯(lián)建站于2013年開始,先為托里等服務(wù)建站,托里等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為托里企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

命令模式就是將一個請求封裝為一個對象,從而可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊(duì)或記錄日志,以及支持可撤銷的操作,將”發(fā)出請求的對象”和”接收與執(zhí)行這些請求的對象”分隔開來。下面小編詳細(xì)很大家談?wù)凧ava設(shè)計模式之命令模式。

命令模式的目的就是達(dá)到命令的發(fā)出者和執(zhí)行者之間解耦,實(shí)現(xiàn)請求和執(zhí)行分開,熟悉Struts的同學(xué)應(yīng)該知道,Struts其實(shí)就是一種將請求和呈現(xiàn)分離的技術(shù),其中必然涉及命令模式的思想!

意圖:將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進(jìn)行參數(shù)化。

主要解決:在軟件系統(tǒng)中,行為請求者與行為實(shí)現(xiàn)者通常是一種緊耦合的關(guān)系,但某些場合,比如需要對行為進(jìn)行記錄、撤銷或重做、事務(wù)等處理時,這種無法抵御變化的緊耦合的設(shè)計就不太合適。

何時使用:在某些場合,比如要對行為進(jìn)行"記錄、撤銷/重做、事務(wù)"等處理,這種無法抵御變化的緊耦合是不合適的。在這種情況下,如何將"行為請者"與"行為實(shí)現(xiàn)者"解耦?將一組行為抽象為對象,可以實(shí)現(xiàn)二者之間的松耦合。

如何解決:通過調(diào)用者調(diào)用接受者執(zhí)行命令,順序:調(diào)用者→接受者→命令。

關(guān)鍵代碼:定義三個角色:

1、received 真正的命令執(zhí)行對象

2、Command

3、invoker 使用命令對象的入口

應(yīng)用實(shí)例:struts 1 中的 action 核心控制器 ActionServlet 只有一個,相當(dāng)于 Invoker,而模型層的類會隨著不同的應(yīng)用有不同的模型類,相當(dāng)于具體的 Command。

優(yōu)點(diǎn):

1、降低了系統(tǒng)耦合度。

2、新的命令可以很容易添加到系統(tǒng)中去。

缺點(diǎn):

使用命令模式可能會導(dǎo)致某些系統(tǒng)有過多的具體命令類。

使用場景:認(rèn)為是命令的地方都可以使用命令模式,比如:

1、GUI 中每一個按鈕都是一條命令。

2、模擬 CMD。

注意事項(xiàng):系統(tǒng)需要支持命令的撤銷(Undo)操作和恢復(fù)(Redo)操作,也可以考慮使用命令模式,見命令模式的擴(kuò)展。

總之命令模式很好理解,舉個例子,司令員下令讓士兵去干件事情,從整個事情的角度來考慮,司令員的作用是,發(fā)出口令,口令經(jīng)過傳遞,傳到了士兵耳朵里,士兵去執(zhí)行。這個過程好在,三者相互解耦,任何一方都不用去依賴其他人,只需要做好自己的事兒就行,司令員要的是結(jié)果,不會去關(guān)注到底士兵是怎么實(shí)現(xiàn)的。

到此,相信大家對“Java設(shè)計模式中的命令模式介紹”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享名稱:Java設(shè)計模式中的命令模式介紹
本文鏈接:http://www.chinadenli.net/article6/ipphig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)企業(yè)建站自適應(yīng)網(wǎng)站ChatGPT網(wǎng)站維護(hù)商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)