日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java命令模式:設(shè)計模式的四人幫

下面將對Java命令模式探討一二。首先,讓我們對命令模式進行一個簡單的理解。

成都創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)成都多線機房報價,主機托管價格性價比高,為金融證券行業(yè)服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

Command 命令模式

Intent:

Encapsulate a request as an object , thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.

瞎談:其實很好理解。命令模式,關(guān)心的就是命令(或者稱為操作)。打個比方。在一個公司里面,整個運作就像一個系統(tǒng)。某個boss發(fā)布了一個命令,中層領(lǐng)導接到這個命令,然后指派給具體負責這個員工。整個流程很清晰吧。有一個需求,如何將這個流程固定下來,形成一個系統(tǒng)。我們只要抓住了重點:命令。將它抽取出來,其他的都迎刃而解了。抽取出命令,封裝成一個獨立的對象,實現(xiàn)了解耦。至于其他的,可以方便地擴展,不論這個命令是CEO,人事部,還是你爸提出來的。無論這個命令的執(zhí)行者是張三還是王八。這個模式的產(chǎn)生,其實是哲學上的“抓住主要矛盾”。更多的例子,如其他作家舉的“去路邊吃烤肉和去烤肉店吃烤肉有什么不同”或者“美猴王大鬧天宮中玉帝拍太白金星捉來猴子”。

正經(jīng):命令模式把一個請求或者操作封裝到一個對象中。命令模式運行系統(tǒng)使用不同的請求把客戶端參數(shù)化,對請求排隊或者記錄請求日志,可以提供命令的撤銷和恢復功能。

Java命令模式本質(zhì)是對命令的封裝,從而把發(fā)出命令的責任和執(zhí)行命令的責任分割開了,委派給不同的對象。通俗地說,我是老總,我只管發(fā)個命令,至于這個命令發(fā)給誰,誰執(zhí)行,關(guān)我P事,我發(fā)錢請人不是為了給自己找麻煩。你是負責事情的員工,你的天職是做好上級交給你的任務,踏踏實實,不要知道太多,不要八卦,不要問太多了。

好處:

◆很容易構(gòu)造一個命令隊列

◆記錄相關(guān)的命令日志

◆增加命令的狀態(tài),實現(xiàn)命令的撤銷和重做

◆允許接受請求的一方?jīng)Q定是否可做

◆新的命令輕而易舉可以加入其中

缺點:可能會有過多的具體命令類存在

實現(xiàn):

也不難,第一步關(guān)鍵是建立Command對象。擁有點面向?qū)ο蟮乃枷?,就知道把它先抽象,讓繼承它的對象去具體實現(xiàn)。Client對象是發(fā)布命令的。Invoker對象是傳遞命令的,就是跑腿的。Receiver是受氣包,底層最累的程序員,負責干活吧??纯聪旅娴念悎D就清晰了:

上面的類圖,一開始我有一些疑問,不如Invoker為什么要存在?,F(xiàn)在想通了,Client的職責只是發(fā)布命令,就不要給它增加傳遞命令的職責。因為客戶有千千萬萬。在現(xiàn)實中,跑腿的人為什么要存在呢?因為領(lǐng)導之所以是領(lǐng)導,就是只發(fā)表命令,跑腿等差事就給跑腿之人去辦吧?,F(xiàn)實中,跑腿之人通常比做事之人混得要好些。因為他們之間面對的是領(lǐng)導,把做事之人功勞攬到自己身上。唉,沒想到設(shè)計模式蘊含了如此深刻的道理,佩服“設(shè)計模式的四人幫Gof”

Java命令模式實現(xiàn)例子:

閻宏博士的書中舉了很多生動有趣的例子,大家可以去查閱。比如一個Mp3。你按了一個播放鍵盤,就播放了。這就可以算是命令模式的一種。 你是Client ,按鍵是Invoker,mp3是Receiver,播放就是一個命令Command對象。

【編輯推薦】

  1. 如何學習Java?談Java學習之路
  2. Java調(diào)用系統(tǒng)命令或可執(zhí)行程序的方法介紹
  3. 通過Java泛型實現(xiàn)數(shù)組排序和搜索的通用方法
  4. 多核時代考驗Java代碼編寫習慣
  5. JSR通過JavaEE 6依賴注入標準 各方觀點不一

標題名稱:Java命令模式:設(shè)計模式的四人幫
URL鏈接:http://m.5511xx.com/article/codjhjh.html