一、Command模式的適用場合:
讓方法運行最常見的方式是調用之,但是在很多情況下,我們不能控制和提供方法執行的上下文和時機。這種情況下,可以把方法封裝在對象中。通過在對象中存儲調用方法所需的信息,就可以讓客戶端或者服務決定何時調用這個方法。
Command模式的意圖是把請求封裝在對象中。
--摘自《Java設計模式》第24章:Command(命令)模式
二、Command模式的經典應用:
Command模式的經典應用就是菜單命令。如何安排才能讓一個類在用戶單擊菜單的時候調用對應的方法呢?解決的方法就是應用多態性,具體做法如下:首先將操作的名稱固定,然后針對不同的類給出不同的實現。
--摘自《Java設計模式》第24章:Command(命令)模式
三、Command模式的簡單例子:
參見http://www.jdon.com/designpatterns/command.htm
四、Command模式的特點:
·有一個頂層的接口,用于表示“執行命令”這個抽象動作,其次該方法中往往會含有用于區分請求類型的形參
·有一至多個實現類,每個實現類實現了接口中“執行命令”這個抽象方法,提供具體的實現
·有一個用來裝載、保存命令執行類的容器對象,負責加載、初始化、查找、調用內部的各個命令對象
五、Command調用的順序:
·初始化命令隊列,裝載各個命令對象(Command接口的實現類)
·接收事件/請求,將其作為參數傳遞給命令隊列
·命令隊列在自己內部查找合適的處理者,調用接口實現方法處理請求
六、Command模式和其它模式的結合:
·Command模式和Memento模式結合,實現“撤銷”操作:
這一點需要和“備忘錄模式”配合,每執行一個操作之前,先保存當前的狀態
·Command模式和Observer模式結合,實現“監聽-觸發”流程:
在GUI界面中,注冊一個監聽器(Observer),監聽各個組件(Observable),當被監聽組件的被激活時,向監聽器傳遞一個信息,監聽器接收信息,作為參數傳遞給命令隊列。命令隊列根據參數查找,執行命令。
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
30 | 31 | 1 | 2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 11 | 12 | |||
13 | 14 | 15 | 16 | 17 | 18 | 19 | |||
20 | 21 | 22 | 23 | 24 | 25 | 26 | |||
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
常用鏈接
留言簿(21)
隨筆分類
- J2EE 框架(9)
- J2EE基礎(4)
- J2SE(43)
- Java 工具(5)
- Oracle Concept(4)
- Oracle SQL/PLSQL(9)
- Oracle 開發(13)
- Oracle 管理(4)
- Oracle 調優
- Oracle 錯誤診斷
- RoR(19)
- UML(3)
- Unix / Linux(13)
- Web基礎(19)
- 其它技術(7)
- 感悟(3)
- 雜項(7)
- 架構與性能(8)
- 模式與重構(19)
- 灌水(8)
- 電影與音樂(16)
- 走過的路(1)
- 軟件過程與軟件方法(3)
- 陽光戶外(2)
- 項目管理(36)
隨筆檔案
- 2012年2月 (3)
- 2011年11月 (4)
- 2011年10月 (1)
- 2011年9月 (2)
- 2011年8月 (2)
- 2011年7月 (5)
- 2011年6月 (3)
- 2011年5月 (1)
- 2011年4月 (1)
- 2011年3月 (3)
- 2011年1月 (1)
- 2010年12月 (1)
- 2010年11月 (5)
- 2010年10月 (3)
- 2010年9月 (1)
- 2010年7月 (1)
- 2010年6月 (1)
- 2010年5月 (4)
- 2010年4月 (9)
- 2010年3月 (19)
- 2010年2月 (8)
- 2010年1月 (3)
- 2009年12月 (34)
- 2009年11月 (1)
- 2009年10月 (2)
- 2009年7月 (4)
- 2009年6月 (5)
- 2009年5月 (3)
- 2009年4月 (2)
- 2009年3月 (1)
- 2009年2月 (5)
- 2009年1月 (5)
- 2008年12月 (13)
- 2008年11月 (4)
- 2008年10月 (1)
- 2008年9月 (6)
- 2008年8月 (5)
- 2008年7月 (3)
- 2008年6月 (31)
- 2008年5月 (10)
- 2008年4月 (9)
- 2008年3月 (7)
- 2008年2月 (4)
- 2008年1月 (19)
BlogJava熱點博客
好友博客
搜索
最新評論

- 1.?re: 【Java基礎專題】編碼與亂碼(01)---編碼基礎[未登錄]
- 666666666666666666666這幾天正在做個類似工程編碼出現錯誤
- --李
- 2.?re: 【Java基礎專題】IO與文件讀寫---使用Apache commons IO簡化文件讀寫
- 不錯
- --阿斯蘭
- 3.?re: 【Java基礎專題】編碼與亂碼(03)----String的toCharArray()方法
- 多謝分享
- --thx
- 4.?re: 【Java基礎專題】編碼與亂碼(05)---GBK與UTF-8之間的轉換
- 評論內容較長,點擊標題查看
- --karl
- 5.?re: 【Java基礎專題】編碼與亂碼(01)---編碼基礎[未登錄]
- 謝謝,幫了我大忙!
- --小龍