大話設計模式筆記(二十) 命令模式

2022-05-02 03:09:08 字數 1731 閱讀 3484

路邊攤吃燒烤,老闆只有一人,又要記住點單,又要忙著收費,客戶做什麼都要排隊。。。

如果客戶多了,請求多,就容易混亂,他叫五串羊肉串,你叫三個烤雞翅,老闆**忙得過來。**中的體現就是一句一句輸出,所以應該要有個服務員。。。

* 抽象命令

* created by callmedevil on 2019/12/14.

*/public abstract class command

// 執行命令

public abstract void excutecommand();

}

/**

* 烤羊肉串命令

* created by callmedevil on 2019/12/14.

*/public class bakemuttoncommand extends command

@override

public void excutecommand()

}

/**

* 烤雞翅命令

* created by callmedevil on 2019/12/14.

*/public class bakechickenwingcommand extends command

@override

public void excutecommand()

}

/**

* 烤肉串者

* created by callmedevil on 2019/12/14.

*/public class barbecuer

public void bakechickenwing()

}

/**

* 服務員

* created by callmedevil on 2019/12/14.

*/public class waiter

public void notifying()

}

public class test 

}

執行結果

烤羊肉串!

烤羊肉串!

烤雞翅!

其實服務員那裡可以完善,比如點單的時候不是乙個乙個點,而是點完之後一起給單;而且尚未烤肉時,訂單也可以進行更改或取消,烤肉的人也是很多肉一起烤,等等,此處就不優化了。

將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。

敏捷開發原則告訴我們,不要為**新增基於猜測的、實際不需要的功能。如果不清楚乙個系統是否需要命令模式,一般就不要著急去實現它,事實上,在需要的時候通過重構實現這個模式並不困難,只要在真正需要如撤銷/恢復操作等功能時,把原來的**重構為命令模式才有意義。

大話設計模式 命令模式

引自原書 1.較容易地設計乙個命令佇列 2.在需要的情況下,可以容易地將命令記入日誌 3.允許接收請求的一方決定是否要否決請求 4.可以容易地實現對請求的撤銷和重做 5.由於加進新的具體命令類不影響其他的類,因此增加新的具體命令類很容易 6.命令模式把請求乙個操作物件與知道怎麼執行乙個操作物件分割開...

大話設計模式 命令模式

description 命令的接收執行者 date 2019 5 21 10 26 public class receiver classname command author leo description 抽象命令類 date 2019 5 21 10 26 public abstract cl...

大話設計模式 命令模式

一 命令模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化 對請求排隊或記錄請求日誌,以及支援可撤銷的操作。二 示例 public class barbecue public void bakechickenwing public abstract class command a...