將請求封裝成為命令物件,使「方法的請求者」與「方法的實現者」解耦。命令物件可以被儲存、**、排隊、記錄、處理、撤銷等。又稱為動作(action)模式或事務(transaction)模式。
呼叫者/請求者(invoker):請求的傳送者,持有乙個或多個命令物件,通過呼叫命令物件執行命令介面處理相關請求,它不直接訪問接收者
抽象命令類(command):宣告執行命令的介面(execute)
具體命令(concretecommand):抽象命令類的實現類,持有接收者物件,呼叫接收者的功能介面完成操作。
實現者/接收者(receiver):執行命令功能的相關操作,是命令的真正實現者
public
class
invoker
public
void
setcommand
(command command)
public
void
commit()
public
void
rollback()
}
public
inte***ce
command
public
class
concretecommand
implements
command
@override
public
void
execute()
@override
public
void
recover()
}
public
class
receiver
public
void
cancel()
}
public
class
commandpattern
catch
(runtimeexception e)
}}
operate...
error occur...
cancel...
通過服務員(呼叫者)點菜,支援批量操作,將菜作為命令,根據不同的菜系分配給不同的廚師
public
class
waiter
public
void
addcuisines
(cuisine .
.. coll)
}public
void
addcuisines
(collection
coll)
public
void
order()
}}
public
inte***ce
cuisine
public
class
cantonesecuisine
implements
cuisine
}public
class
hunancuisine
implements
cuisine
}public
class
sichuancuisine
implements
cuisine
}
public
inte***ce
chef
public
class
cantonesecuisinechef
implements
chef
}public
class
hunancuisinechef
implements
chef
}public
class
sichuancuisinechef
implements
chef
}
public
class
commandpattern
}
cooking hunan cuisine...
cooking cantonese cuisine...
cooking sichuan cuisine...
將請求封裝,通過客戶端執行不同的請求,後台執行不同的業務操作
設計模式 行為型 命令模式
設計模式行為型 1.觀察者模式 2.模板模式 3.策略模式 4.職責鏈模式 5.狀態模式 6.迭代器模式 7.訪問者模式 8.備忘錄模式 9.命令模式 10.直譯器模式 11.中介模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶端進行引數化,對請求排隊或記錄請求日誌,以及支援可撤銷的操作...
設計模式 行為型 命令
具體實現 package com.desinmode.command public inte ce command package com.desinmode.command public class light public void off package com.desinmode.comma...
17 設計模式 行為型 之中介者模式
降低了類的複雜度,將一對多轉化成了一對一。各個類之間的解耦。符合迪公尺特原則。author create by chenxin data created in 2018 9 7 13 51 version acton 部門 同事類的藉口 public inte ce department autho...