卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

命令模式:解決包子店順序問(wèn)題

在小編家附近有一家包子店,每天早上都有很多人來(lái)買(mǎi)早點(diǎn)。但是老板經(jīng)常糊涂,總是忘記先后順序,也不記得客人的點(diǎn)單內(nèi)容。為了解決這個(gè)問(wèn)題,我們可以使用設(shè)計(jì)模式中的“命令模式”。 1. 命令模式 命令模式

在小編家附近有一家包子店,每天早上都有很多人來(lái)買(mǎi)早點(diǎn)。但是老板經(jīng)常糊涂,總是忘記先后順序,也不記得客人的點(diǎn)單內(nèi)容。為了解決這個(gè)問(wèn)題,我們可以使用設(shè)計(jì)模式中的“命令模式”。

1. 命令模式

命令模式(Command)將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,通過(guò)不同的請(qǐng)求來(lái)參數(shù)化客戶端,并且可以對(duì)請(qǐng)求進(jìn)行排隊(duì)或記錄請(qǐng)求日志,還可以提供撤銷和恢復(fù)功能。

下面是命令模式的UML類圖:

2. 包子店角色分配

在我們的包子店中,我們需要兩個(gè)角色:服務(wù)員兼收錢(qián)的(Waiter)和拿包子打豆?jié){的(Baker)。假設(shè)只有兩種工作:拿包子(Baozi)和打豆?jié){(Doujiang),這兩種工作對(duì)應(yīng)了命令模式中的ConcreteCommand角色。

首先,我們創(chuàng)建Baker類,用于執(zhí)行具體的工作。

3. 抽象命令類

我們創(chuàng)建一個(gè)抽象命令類(Command),其中包含一個(gè)Baker實(shí)例、構(gòu)造函數(shù)和execute方法。

4. 具體命令類

接下來(lái)我們創(chuàng)建具體的命令類,DoujiangCommand和BaoziCommand,它們繼承自Command類。同時(shí),我們重寫(xiě)了toString方法,方便打印日志。

5. 服務(wù)員類

創(chuàng)建Waiter類,用于接收客戶需求并通知Baker送食物。

  • Listlt;Commandgt; commands:用于存儲(chǔ)客戶的需求
  • setOrder:客戶點(diǎn)單
  • cancelOrder:客戶取消之前的點(diǎn)單
  • notifyBaker:通知Baker送食物

6. 測(cè)試函數(shù)

最后,我們創(chuàng)建一個(gè)測(cè)試函數(shù)來(lái)運(yùn)行程序并查看結(jié)果。

通過(guò)使用命令模式,我們成功解決了包子店的順序問(wèn)題。現(xiàn)在,每個(gè)客人的需求都被記錄下來(lái),可以按照先后順序進(jìn)行制作,并且客人可以隨時(shí)更改或取消他們的訂單。

設(shè)計(jì)模式在實(shí)際編程中有著廣泛的應(yīng)用,不僅可以提高代碼的可讀性和可維護(hù)性,還可以解決實(shí)際問(wèn)題帶來(lái)的困擾。希望這篇文章對(duì)于理解命令模式有所幫助!

標(biāo)簽: