命令模式 & 策略模式 & 模板方法

K戰神發表於2015-12-20

一、策略模式

策略模式:封裝易變化的演算法,可互相替換。

GoF《設計模式》中說道:定義一系列演算法,把它們一個個封裝起來,並且使它們可以相互替換。該模式使得演算法可獨立於它們的客戶變化。

比如:一個推送服務類,推送的方式,可以分為:QQ推送、郵箱推送、App推送、PC外掛推送。

這裡講兩個點:

       1、推送方式可以互相替換;

       2、這些推送方式只是單純的屬於推送服務這個類本身。

好好琢磨關鍵詞:相互替換

 

二、命令模式

命令模式:解決“行為請求者”與“行為實現者”通常呈現一種“緊耦合”的問題。

GoF《設計模式》中說道:將一個請求封裝為一個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。

比如一個智慧遙控器,可以控制家裡電燈、電水壺、路由器,這些的開和關。

我們用策略模式?

好吧,遙控器類,抽象開,抽象關。但是,電燈電水壺怎麼弄?

所以歸根結底:定義很重要。命令模式有兩個重要的角色—請求者和實現者。

遙控器是請求者,這些電器是實現者。關鍵是電燈的開合電水壺的開不能替換啊。

 

相關文章