成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java命令模式:設計模式的四人幫

開發 后端
本文介紹了一個Java設計模式:Java命令模式。這個模式很容易理解,分為四步:Command對象建立,Client對象,Invoker對象以及Receiver。

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

Command 命令模式

Intent:

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

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

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

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

好處:

◆很容易構造一個命令隊列

◆記錄相關的命令日志

◆增加命令的狀態,實現命令的撤銷和重做

◆允許接受請求的一方決定是否可做

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

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

實現:

也不難,第一步關鍵是建立Command對象。擁有點面向對象的思想,就知道把它先抽象,讓繼承它的對象去具體實現。Client對象是發布命令的。Invoker對象是傳遞命令的,就是跑腿的。Receiver是受氣包,底層最累的程序員,負責干活吧。看看下面的類圖就清晰了:

類圖 

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

Java命令模式實現例子:

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

【編輯推薦】

  1. 如何學習Java?談Java學習之路
  2. Java調用系統命令或可執行程序的方法介紹
  3. 通過Java泛型實現數組排序和搜索的通用方法
  4. 多核時代考驗Java代碼編寫習慣
  5. JSR通過JavaEE 6依賴注入標準 各方觀點不一
責任編輯:yangsai 來源: JavaEye博客
相關推薦

2020-11-03 13:05:18

命令模式

2023-05-04 08:47:31

命令模式抽象接口

2012-07-10 02:01:53

設計模式命令模式

2010-04-13 08:54:28

PHP設計模式命令模式

2021-04-19 21:25:48

設計模式到元

2021-02-01 10:01:58

設計模式 Java單例模式

2012-08-30 09:07:33

設計模式

2020-08-21 07:23:50

工廠模式設計

2020-11-04 08:54:54

狀態模式

2023-04-10 09:20:13

設計模式訪客模式

2013-11-26 16:09:34

Android設計模式

2020-10-23 09:40:26

設計模式

2022-01-12 13:33:25

工廠模式設計

2023-11-02 21:11:11

JavaScript設計模式

2011-11-17 16:03:05

Java工廠模式Clojure

2012-05-16 17:15:04

Java設計模式

2009-06-15 14:19:55

Java設計模式Java

2012-05-16 17:22:11

Java設計模式

2021-03-06 22:50:58

設計模式抽象

2024-07-31 08:12:33

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人午夜免费网站 | 欧美成人精品在线 | 国产无人区一区二区三区 | 91精品国产91久久久久久密臀 | 国产农村一级国产农村 | av天天干 | 日本黄色片免费在线观看 | 91色视频在线 | 欧美一区二 | 在线超碰 | 日韩午夜电影在线观看 | 操操日 | 国产精品视频专区 | 99这里只有精品视频 | 久草网址| 欧美性jizz18性欧美 | 亚洲国产精品一区二区第一页 | av在线播放免费 | 久久狠狠 | 99久久婷婷国产综合精品电影 | 久久精品国产免费一区二区三区 | 亚洲精品久久久一区二区三区 | 可以在线看的黄色网址 | 国产在线观看一区二区 | 国产又色又爽又黄又免费 | 午夜色播 | 日韩国产一区 | 91精品国产综合久久福利软件 | 99热这里 | 91精品成人久久 | 亚洲精品在线国产 | 亚洲精品乱码久久久久久蜜桃91 | 91精品一区二区三区久久久久久 | 特一级黄色毛片 | 国产色 | 亚洲国产精品视频 | 中文字幕99 | 亚洲免费视频一区 | 亚洲成人av在线播放 | 在线免费av电影 | 国产欧美日韩精品在线观看 |