設計模式之 策略模式

2021-10-01 14:50:00 字數 1066 閱讀 2908

策略模式,一般用來對某個功能根據不同的策略做不同的響應,實現過程很也簡單。

將行為定義為策略介面,然後根據實際需要,我們去實現不同的具體策略。

然後通過在抽象類中持有策略行為的介面,子類在繼承抽象類時,預設提供一種策略。

如果需要修改策略,只需要呼叫抽象類的設定策略方法即可。

舉個栗子:

現在有乙個教學行為策略的介面,teachstrategy。

它有兩個具體的實現:

教數學 mathteachstrategy

教英語 englishteachstrategy

乙個教師抽象類teacher

它有乙個子類:

***  teacherli

策略模式怎麼玩?

老師的抽象父類中持有乙個教學策略引用,使用者可以手動set新的策略。然後只要在老師的子類中定義乙個預設的教學策略即可(通常在建構函式中實現乙個預設的策略)。

更換策略的時候,只要set我們想要的就搞定了。

好了,上完整的**:

public inte***ce teachstrategy
public class englishteachstrategy implements teachstrategy 

}

public class mathteachstrategy implements teachstrategy 

}

public abstract class teacher 

//呼叫策略的具體實現

public void teach() }}

public class teacherli extends teacher 

}

@test

public void test()

設計模式之策略模式

include using namespace std 飛行行為介面類 class flystrategy 高空飛行行為具現類 class heightfly public flystrategy virtual void fly private heightfly 低空飛行行為具現類 class ...

設計模式之 策略模式

策略模式 strategy pattern 定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。策略模式是一種定義了一系列演算法的方法,從概念上來看,所以得這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有的演算法,減少了各...

設計模式之策略模式

何為策略,就是可以實現目標的方案集合。而完成一項任務有不同的方式,每一種方式稱為乙個策略。策略模式就是定義一系列演算法,將每乙個演算法封裝起來,並讓他們可以相互替換。很簡單的乙個例子 年底移動公司推出很多的活動,比如說 存話費贈食用油,交話費贈話費,買手機贈話費 等等。推出這些個活動目的就只有乙個,...