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

2022-01-15 01:53:28 字數 498 閱讀 6597

一、策略模式

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

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

這裡講兩個點:

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

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

二、命令模式

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

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

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

我們用策略模式?

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

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

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

模板方法模式與策略模式

在學習設計模式中,最令人頭疼的不是這些模式怎麼記,而是許多設計模式太多相似,讓人眼花繚亂,單獨看某乙個設計模式,我們沒有問題,可是當全域性看時,一時間不知道自己該用哪乙個或者我用的到底是哪乙個。這是定義 模板方法 templatemethod 模式 定義乙個操作中的演算法骨架,而將演算法的一些步驟延...

模板方法模式 策略模式區別聯絡

模板方法模式 定義 一系列演算法,子類延伸實現。著重點在於 子類去處理不同的方法實現。看下面例子。假如乙個支付 都包含三個部分 生成訂單 呼叫api發起支付 處理訂單 購物流程 模板方法基類 authorliangxing.zhu create 2018 9 15 since1.0.0 public...

策略模式,模板模式,工廠模式

自己不關心類是怎麼來的.我想要汽車,直接去 4s 店提就好,不用自己拼零件 spring 的 ioc dagger 都是這種依賴注入框架.舉個具體應用的例子 你哪天心情好把類名改了。或者把構造函式引數改了 增加或減少引數 而你 中又有n處new了這個類。如果你又沒用工廠。那你慘了。乙個乙個找來改吧。...