《設計模式》17 命令模式(行為型)

2021-09-22 18:18:24 字數 3057 閱讀 6174

將請求封裝成為命令物件,使「方法的請求者」與「方法的實現者」解耦。命令物件可以被儲存、**、排隊、記錄、處理、撤銷等。又稱為動作(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...