国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

廣州做網(wǎng)站的企業(yè)品牌傳播策劃方案

廣州做網(wǎng)站的企業(yè),品牌傳播策劃方案,北京環(huán)球影城每日客流量統(tǒng)計(jì),網(wǎng)站建設(shè)方案對比分析目錄 情景劇場什么是命令模式優(yōu)缺點(diǎn)優(yōu)點(diǎn)缺點(diǎn) 使用命令模式的步驟命令模式代碼示例合理使用AI工具自動生成代碼 情景劇場 我們來設(shè)想一個場景: 你進(jìn)入一家餐館,餐館只有老板一個人(老板即廚師)。 “老板,一份小炒肉&am…

目錄

    • 情景劇場
    • 什么是命令模式
    • 優(yōu)缺點(diǎn)
      • 優(yōu)點(diǎn)
      • 缺點(diǎn)
    • 使用命令模式的步驟
    • 命令模式代碼示例
    • 合理使用AI工具自動生成代碼

情景劇場

我們來設(shè)想一個場景:

你進(jìn)入一家餐館,餐館只有老板一個人(老板即廚師)。

“老板,一份小炒肉,不要辣。”

老板收到了你的訂單請求,去后廚做菜了。這時(shí)又進(jìn)來幾位顧客:

“老板,來兩份清炒時(shí)蔬,不要辣。”

“老板,我要一份清炒時(shí)蔬,多放辣。”

“老板,一份小炒肉,多放辣,打包?!?/p>

“老板,我的兩份清炒時(shí)蔬改成一份,打包?!?/p>

顧客
+點(diǎn)菜()
廚師
+小炒肉()
+清炒時(shí)蔬()

當(dāng)顧客變多,請求也變多,而每個顧客的請求也非常不一樣。老板就很容易分不清誰的需求是什么,做錯菜、上錯菜都是會發(fā)生的錯誤。顧客對老板直接提出請求,請求多了很容易導(dǎo)致混亂。這里顧客就是請求的發(fā)送者,老板就是請求的接收者,請求者和接收者的“緊耦合”雖然邏輯簡單,但是很容易僵化。
當(dāng)給餐館加上服務(wù)員和訂單,就會不一樣:

顧客走進(jìn)餐館開始點(diǎn)單,服務(wù)員接過顧客的訂單,并將其寫在一張紙上。服務(wù)員去廚房,把訂單貼在墻上,訂單按排列順序到達(dá)廚師手中,這樣廚師做菜就不會混亂,也不會遺忘。廚師將餐點(diǎn)與訂單一起轉(zhuǎn)交服務(wù)員,服務(wù)員檢查訂單并將所有東西帶到顧客的餐桌上。在此期間,顧客可以撤銷訂單或增刪訂單需求。

顧客
+點(diǎn)菜()
-取消點(diǎn)菜()
Order
+點(diǎn)菜()
-取消點(diǎn)菜()
小炒肉
+點(diǎn)菜()
-取消點(diǎn)菜()
清炒時(shí)蔬
+點(diǎn)菜()
-取消點(diǎn)菜()
服務(wù)員
orders : List
takeOrder()
placeOrder()
廚師
炒肉()
炒時(shí)蔬()

顧客不需要知道是誰來完成烹飪,廚師不需要知道是誰的訂單,紙質(zhì)訂單用作命令,一直排在隊(duì)列中。這也就實(shí)現(xiàn)了請求者和接收者的解耦。

什么是命令模式

命令模式(Command Pattern)是一種行為設(shè)計(jì)模式,它把請求或操作封裝成一個包含有關(guān)請求所有信息的獨(dú)立對象,此轉(zhuǎn)換允許將請求作為方法參數(shù)傳遞,延遲或排隊(duì)請求的執(zhí)行,并支持可撤消的操作,從而實(shí)現(xiàn)將請求者和接收者解耦。

優(yōu)缺點(diǎn)

命令模式是一種靈活且功能強(qiáng)大的設(shè)計(jì)模式,主要優(yōu)點(diǎn)是它允許在不修改現(xiàn)有客戶端代碼的情況下添加新的命令。此外,通過使用命令模式,可以將操作記錄到日志中、撤銷操作或者將操作進(jìn)行隊(duì)列化等,同時(shí)他也有一些缺點(diǎn)。

優(yōu)點(diǎn)

  1. 解耦性:命令模式通過將請求發(fā)送者與接收者解耦,使得請求發(fā)送者不需要知道接收者的具體實(shí)現(xiàn)細(xì)節(jié),從而增強(qiáng)了系統(tǒng)的靈活性和可維護(hù)性。

  2. 可擴(kuò)展性:通過添加新的具體命令類,可以很容易地?cái)U(kuò)展系統(tǒng)的功能,而不需要修改已有的代碼。

  3. 支持撤銷和重做:命令模式可以記錄請求的歷史操作,從而支持對操作的撤銷和重做,提供了更好的用戶體驗(yàn)。

  4. 支持日志和隊(duì)列:可以將命令對象保存在日志中,實(shí)現(xiàn)系統(tǒng)的日志記錄功能。此外,命令對象還可以組織成隊(duì)列,實(shí)現(xiàn)命令的批處理和延遲執(zhí)行。

  5. 命令模式符合“開-閉”原則。因?yàn)閷⒕唧w命令封裝成了一個一個獨(dú)立的對象,所有當(dāng)需要修改現(xiàn)有功能時(shí),可以通過添加新代碼來實(shí)現(xiàn),而不是修改已有的代碼。這樣可以提高代碼的可維護(hù)性和可擴(kuò)展性,減少出錯率和代碼復(fù)雜度。具體點(diǎn)說,在增加新的具體命令或增加命令的接收者時(shí),不需要修改原有調(diào)用者的代碼;而在增加新的調(diào)用者時(shí),不需要修改原有的具體命令和接收者的代碼。

  6. 命令模式支持宏命令。

即將多個命令組合成一個命令。這樣可以將多個操作封裝成一個操作,減少了代碼的冗余和重復(fù),提高代碼的復(fù)用率。

缺點(diǎn)

  1. 類的數(shù)量增加:引入命令模式會增加系統(tǒng)中的類的數(shù)量,特別是在有大量具體命令類的情況下,可能會導(dǎo)致類的數(shù)量激增,增加了系統(tǒng)的復(fù)雜性。
  2. 命令的單一性:每個具體命令類通常只封裝了一個特定的操作,這可能會導(dǎo)致系統(tǒng)中存在大量的具體命令類,增加了系統(tǒng)的管理和維護(hù)成本。
  3. 對象間的調(diào)用鏈可能過長:在命令模式中,請求發(fā)送者、命令對象、接收者之間可能存在多層的調(diào)用鏈,特別是在復(fù)雜的系統(tǒng)中,可能會導(dǎo)致調(diào)用鏈過長,影響系統(tǒng)的性能。
    雖然命令模式有一些缺點(diǎn),但在很多場景下仍然是一種非常有用的設(shè)計(jì)模式,特別是在需要支持撤銷、重做、日志記錄和隊(duì)列等功能的情況下。

使用命令模式的步驟

使用命令模式可以通過以下步驟進(jìn)行:

  1. 確定參與者:首先,確定在系統(tǒng)中誰是命令的發(fā)起者(Invoker)、命令的接收者(Receiver)、以及具體的命令對象(Command)。
  2. 定義命令接口:創(chuàng)建一個命令接口,其中包含一個執(zhí)行操作的方法(如execute())。這個接口可以是抽象類或者接口,具體取決于設(shè)計(jì)的需求。
  3. 實(shí)現(xiàn)具體命令類:針對每個具體的操作,創(chuàng)建一個具體的命令類,實(shí)現(xiàn)命令接口,并在其中封裝具體的操作實(shí)現(xiàn)。
  4. 創(chuàng)建接收者類:定義接收者類,實(shí)現(xiàn)命令所需的具體操作。 創(chuàng)建調(diào)用者類:創(chuàng)建一個調(diào)用者類,負(fù)責(zé)向具體的命令對象發(fā)送請求。
  5. 創(chuàng)建客戶端代碼:在客戶端代碼中創(chuàng)建具體的命令對象,并將其關(guān)聯(lián)到調(diào)用者對象上。

命令模式代碼示例

; 定義命令接口
class ICommand {Execute() {; 需要被覆蓋的方法(抽象方法)}
}; 定義具體命令A(yù)
class CommandA extends ICommand {Execute() {MsgBox("Command A Executed")}
}; 定義具體命令B
class CommandB extends ICommand {Execute() {MsgBox("Command B Executed")}
}; 定義調(diào)用者,負(fù)責(zé)執(zhí)行命令
class Invoker {__New(command) {this.command := command}ExecuteCommand() {this.command.Execute()}
}; 客戶端代碼
main() {; 創(chuàng)建命令實(shí)例_commandA := CommandA()_commandB := CommandB(); 創(chuàng)建調(diào)用者并關(guān)聯(lián)命令_invokerA := Invoker(_commandA)_invokerB := Invoker(_commandB); 執(zhí)行命令_invokerA.ExecuteCommand()_invokerB.ExecuteCommand()
}; 運(yùn)行主程序
main()

合理使用AI工具自動生成代碼

上面的代碼是用Comate生成的
在這里插入圖片描述
代碼就是上面那部分,我就不截圖了,稍微改改就可以運(yùn)行。也可以把報(bào)錯信息提示給它,它會給出修改代碼示例。

還可以讓它輸出UML類圖:
在這里插入圖片描述
這個mermaid代碼直接在CSDN的波紋MD編輯模式可以直接用哦。

感興趣可以在VSCODE中安裝這個AI編碼助手——Comate,感覺能在小眾語言AHK上表現(xiàn)這么好還是很令人驚訝的。
https://comate.baidu.com/zh/shopping?inviteCode=kqqi3lsj

Alt

http://aloenet.com.cn/news/41484.html

相關(guān)文章:

  • 成都網(wǎng)站建設(shè)排名百度瀏覽器網(wǎng)頁版入口
  • 網(wǎng)頁設(shè)計(jì)賺錢網(wǎng)站百度網(wǎng)站推廣怎么做
  • 小清新博客網(wǎng)站就業(yè)培訓(xùn)機(jī)構(gòu)有哪些
  • 很大氣的網(wǎng)站 營銷網(wǎng)絡(luò)營銷的認(rèn)知
  • 網(wǎng)站項(xiàng)目宣傳片編程培訓(xùn)
  • 動態(tài)網(wǎng)站設(shè)計(jì)論文3000字登錄注冊入口
  • 沛縣做網(wǎng)站xlec中國關(guān)鍵詞網(wǎng)站
  • 做的比較好的政府網(wǎng)站臺州seo公司
  • 網(wǎng)站推廣外包百度推廣怎么才能效果好
  • 南寧哪里有做網(wǎng)站的公司關(guān)鍵詞優(yōu)化的方法有哪些
  • 什么網(wǎng)站可以快速做3d效果圖鄭州專業(yè)的網(wǎng)站公司
  • 哪里有做網(wǎng)站培訓(xùn)的百度熱議排名軟件
  • 動漫設(shè)計(jì)與制作課程網(wǎng)站優(yōu)化設(shè)計(jì)公司
  • 重慶李家沱網(wǎng)站建設(shè)提高工作效率的方法不正確的是
  • 網(wǎng)站優(yōu)化包括整站優(yōu)化嗎惠州seo網(wǎng)站管理
  • 鎮(zhèn)平縣建設(shè)局網(wǎng)站企業(yè)seo顧問服務(wù)阿亮
  • 網(wǎng)站制作的常見問題微信廣告推廣價(jià)格表
  • wordpress創(chuàng)建搜索頁面天津海外seo
  • 設(shè)計(jì)制作網(wǎng)站制作市場營銷四大基本策略
  • 蟲蟲wap建站源碼windows優(yōu)化大師官方下載
  • 響應(yīng)網(wǎng)站適合成人參加的培訓(xùn)班
  • 廣州做網(wǎng)站哪個公司做得好網(wǎng)頁制作教程
  • 廣州建設(shè)網(wǎng)站的公司外鏈下載
  • 網(wǎng)站描述代碼怎么寫市場調(diào)研的步驟
  • 佳木斯做網(wǎng)站免費(fèi)發(fā)布推廣信息的軟件
  • 合肥的網(wǎng)站建設(shè)windows永久禁止更新
  • 電影網(wǎng)站怎么做seo網(wǎng)絡(luò)營銷帶來的效果
  • 淘寶客網(wǎng)站W(wǎng)ordPressseo常用工具包括
  • 寶山做網(wǎng)站公司南陽網(wǎng)站seo
  • 做H5哪個網(wǎng)站字體漂亮一些濟(jì)南網(wǎng)站推廣公司