命令模式:
通俗的講,例如點菜:你命令服務員去上選單上的青椒肉絲,而青椒肉絲的製作者是大廚。
這裡有5個角色:
例如:命令角色runnable
具體命令角色runnable的實現,實現具體業務,裡面維護乙個接受者,去執行具體業務
接受者也就是 具體業務的執行者,或者說,具體命令------大廚炒辣椒,這裡大叔就是接受者
請求者角色編寫乙個類,去呼叫具體命令的 start()方法(服務員的任務)。(這裡可以結合組合模式,**模式,備忘錄模式(事務)等等)
客戶端1. 例項化接受者物件, 2. 例項化命令角色,並傳入執行者(接受者) 3. 例項化請求者統一管理所有命令角色, 4. 最後:呼叫其執行方法。
距離例子:
/**
1. 命令模式
2. 1.抽象命令角色commond
3. 2.具體命令角色commondon、commondoff、commondchange
4. 3.請求者角色commondmanager
5. 4.接受者角色tv
6. 5.客戶端client
*/package abstract.commond;
class commondmanager
public void
turnon()
public void
turnoff()
public void
change()
}inte***ce commond
class commondon implements commond
public void
execute()
}class commondoff implements commond
public void
execute()
}class commondchange implements commond
public void
execute()
}class tv
public void
turnon()
public void
turnoff()
public void
change
(int channel)
}public class client
}
命令模式的優點:
1.命令模式將呼叫操作的請求物件(commondmanager ) 與 知道該如何操作的接收者物件(tv) 解耦
2.具體命令角色(commondoff)可以被不同的請求者物件(tv)重用
3.你可以將多個命令裝配成乙個復合命令(組合模式)
4.增加新的具體命令角色很容易,因為這無需改變已有的類。
設計模式課時七 單例模式
單體模式的不同變現形式 1.餓漢單例模式 2.懶漢單例模式 3.多例模式 1.餓漢單例模式 public class singleton 建立私有靜態例項,意味著這個類第一次使用的時候就會進行建立 private static singleton instance new singleton pub...
設計模式課時六 責任型模式
概念 在責任鏈模式裡,很多的物件由每乙個物件對其下家的引用而連線起來的形成一條鏈,請求在這個鏈上傳遞,直到鏈上的某乙個物件處理此請求。發出這個請求的客戶端並不知道鏈上的哪乙個物件最終處理這個請求,這使得系統可以在不影響客戶端的情況下動態地重新組織鏈和分配責任。典型案例 擊鼓傳花。abstract c...
十 JavaScript設計模式之命令模式
一 命令模式概念 命令模式 command 的定義是 用來對方法呼叫進行引數化處理和傳送,經過這樣處理過的方法呼叫可以在任何需要的時候執行。也就是說該模式旨在將函式的呼叫 請求和操作封裝成乙個單一的物件,然後對這個物件進行一些列的處理。他也可以用來消除呼叫操作的物件和實現操作的物件之間的耦合。這為各...