大話設計模式二十三 命令模式(烤羊肉串引來的思考)

2021-09-01 19:53:29 字數 1029 閱讀 1539

命令模式:

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

// 抽象命令類

public abstract class command

public abstract void excutecommand();

public barbecuer getbarbecuer()

public void setbarbecuer(barbecuer barbecuer)

}// 烤雞翅命令

public class bakechickenwingcommand extends command

@override

public void excutecommand()

}// 烤羊肉串命令

public class bakemuttoncommand extends command

@override

public void excutecommand()

}// 烤肉串的師傅

public class barbecuer

// 烤雞翅

public void bakechickenwing()

}// 服務員

public class waiter

// 取消訂單

public void cancelorder(command com)

// 全部執行

public void inform() }}

public class commandmain

}

命令模式作用:

1. 它能較容易地設計乙個命令佇列。

2. 在需要的情況下,可以較容易地將命令計入日誌。

3. 允許接受請求的一方決定是否要否決請求。

4. 可以容易地對請求的撤銷和重做。

5. 增加新的具體命令類很容易。

大話設計模式二十三章經 一 模式大推銷

設計模式是個好東東,在平時的專案開發中也用的很多,騰出了些時間把23種常用的gof設計模式用一些生動有趣的情景式描述介紹給大家.模式的概念最早是由建築大師christopher alexander提出,他說 每個模式都描述了乙個在我們的日常環境中不斷出現的問題,然後描述了該問題的解決方案的核心.通過...

設計模式 二十三 模板方法模式

template method pattern 模板方法模式 template method pattern 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模板方法模式是一種基於繼承的 復用技術,它是一種類行為型...

設計模式(二十三) 職責鏈模式

一 以加薪 為例 加薪 初步 class request public void setnumber int number public string getrequesttype public void setrequesttype string requesttype public string...