路邊攤吃燒烤,老闆只有一人,又要記住點單,又要忙著收費,客戶做什麼都要排隊。。。
如果客戶多了,請求多,就容易混亂,他叫五串羊肉串,你叫三個烤雞翅,老闆**忙得過來。**中的體現就是一句一句輸出,所以應該要有個服務員。。。
* 抽象命令
* 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...