《設計模式之禪》讀書筆記 策略模式

2021-07-31 16:28:18 字數 1813 閱讀 1868

策略模式(strategy pattern):

定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。

對於策略模式來說了解清楚它三個角色的作用,基本就差不多了。

策略模式的三個角色:

它也叫做上下文角色,起承上啟下封裝作用,遮蔽高層模組對策略、演算法的直接訪問,封裝可能存在的變化。

策略、演算法家族的抽象,通常為介面,定義每個策略或演算法必須具有的方法和屬性。

實現抽象策略中的操作,含有具體的演算法,即具體的策略實現。

下面是**實現

package

com.jd.current.strategy;

/*** 抽象的策略角色

* @author

zhengxun

* @version

2017-05-06 */

public

inte***ce

strategy

package

com.jd.current.strategy;

/*** 抽象的策略角色

* @author

zhengxun

* @version

2017-05-06 */

public

inte***ce

strategy

package

com.jd.current.strategy;

/*** 具體的策略1

* @author

zhengxun

* @version

2017-05-06 */

public

class concretestrategy1 implements

strategy

}

package

com.jd.current.strategy;

/*** 具體的策略2

* @author

zhengxun

* @version

2017-05-06 */

public

class concretestrategy2 implements

strategy

}

package

com.jd.current.strategy;

/*** 封裝角色

* @author

zhengxun

* @version

2017-05-06 */

public

class

context

public

void

dosometing()

}

策略模式的優點

只要實現抽象策略,就可以通過context對其進行呼叫

新增乙個策略僅僅實現介面就可以了

策略模式的缺點

策略模式的使用場景

例如某些if 條件判斷 switch 判斷,如果判斷條件內執行**過多就可以拿到策略模式來做

這個比較好理解,指的是具體用那種策略是根據入參來決定的

《設計模式之禪》讀書筆記 21 狀態模式

定義 當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類。類圖 state抽象狀態角色 介面或抽象類,負責物件狀態定義,並且封裝環境角色以實現狀態切換。concretestate具體狀態角色 每乙個具體狀態必須完成兩個職責 本狀態的行為管理以及趨向狀態處理,通俗地說,就是本狀態下要做...

《設計模式之禪》讀書筆記 12 裝飾模式

定義 裝飾模式可以動態地給乙個物件新增一些額外的職責。類圖 component抽象構件 component是乙個介面或者是抽象類,就是定義我們最核心的物件,也就是最原始的物件。concretecomponent具體構件 concretecomponent是最核心 最原始 最基本的介面或抽象類的實現。...

設計模式之禪讀書筆記 建立類模式

23種設計模式可以分為三大類.建立類,結構類,行為類.建立類模式 都能夠提供物件的建立和管理職責 單例模式 保持在記憶體中只有乙個物件 工廠方法模式 抽象工廠模式 建造者模式 原型模式 通過複製的方式產生乙個新的物件 單例模式 定義 確保單例類只有乙個例項,而且自行例項化並向整個系統提供這個例項.優...