<!DOCTYPE html> <html> <head> <title>命令模式的基本概念</title> </head> <body> </body> <script type="text/javascript"> /* 假設有一個快餐店,而我是該餐廳的點餐服務員,那么我一天的工作應該是這樣的:當某位 客人點餐或者打來訂餐電話后,我會把他的需求都寫在清單上,然后交給廚房,客人不用關心是 哪些廚師幫他炒菜。我們餐廳還可以滿足客人需要的定時服務,比如客人可能當前正在回家的路 上,要求 1個小時后才開始炒他的菜,只要訂單還在,廚師就不會忘記。客人也可以很方便地打 電話來撤銷訂單。另外如果有太多的客人點餐,廚房可以按照訂單的順序排隊炒菜。 這些記錄着訂餐信息的清單,便是命令模式中的命令對象。 */ /* 適用場景: 命令模式最常見的應用場景是:有時候需要向某些對象發送請求,但是並不知道請求的接收 者是誰,也不知道被請求的操作是什么。此時希望用一種松耦合的方式來設計程序,使得請求發送者和請求接收者能夠消除彼此之間的耦合關系。 拿訂餐來說,客人需要向廚師發送請求,但是完全不知道這些廚師的名字和聯系方式,也不 知道廚師炒菜的方式和步驟。 命令模式把客人訂餐的請求封裝成 command 對象,也就是訂餐中的 訂單對象。這個對象可以在程序中被四處傳遞,就像訂單可以從服務員手中傳到廚師的手中。這 樣一來,客人不需要知道廚師的名字,從而解開了請求調用者和請求接收者之間的耦合關系。 */ </script> </html>