2 設計模式 策略模式

2021-08-21 21:32:15 字數 1164 閱讀 2569

定義:(它定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會直接影響到用演算法的客戶。)

模式分析:

策略模式是一種定義一系列演算法的模式,完成的工作相同,只是由於實現不同,所以以相同的方式呼叫,減少了各種演算法類與使用演算法類之間的耦合。

策略模式可以封裝任何型別的規則,實踐過程中,只要在分析過程中聽到以不同的時間運用不同的業務規則,就可以考慮用策略模式。

簡單來說:方法通過引數的不同,呼叫了各不相同的演算法邏輯,得到了自己想要的結果。

結構圖:

這個類圖並不複雜,右邊是策略介面以及它的實現類,左邊會有乙個上下文,這個上下文會擁有乙個策略,而具體這個策略是哪一種,我們是可以隨意替換的。

下面還是以乙個計算器的**為案例:

//抽象計算類

public inte***ce operationstategy

//實現operationstategy,加法實現類

public class operationstategyadd implements operationstategy

}

//減法實現類

public class operationstategysub implements operationstategy

}

public class context 

// 策略模式與簡單工廠模式結合

public context(operationenum operationenum)

}public bigdecimal operation(bigdecimal num1,bigdecimal num2)

}

/**

* @author: yhr

* @date: 2018/7/27/027 10:23

* 實現簡單計算器

* 策略模式()

* 應用場景:不同時間應用不同的業務規則

*/public class runmain

}

設計模式 策略模式 2

設計模式,先說設計模式吧,對於設計模式而言,這裡邊把事物具體抽象出來,就剩下什麼了?就剩下 如何用乙個良好的結構儲存資料?然後如何用乙個擴充套件性強,可維護性高的操作,來實現這些資料的操作與控制 好了,感言說完了,接下來就是,聊一聊設計模式中的 策略模式!對於策略模式而言,有乙個比較好的例子,那就是...

設計模式2 策略模式

abstract class strategypublic class concretestrategya extends strategy public class concretestrategyb extends strategy public class concretestrategyc ...

設計模式(2) 策略模式

我有乙個夢想,我寫的 可以像詩一樣優美。我有乙個夢想,我做的設計,能恰到好處,既不過度,也無不足。前面說了常用的工廠方法模式 簡單工廠 抽象工廠,今天說一下策略模式。策略模式我的理解其實很像工廠模式,這也是為什麼第二個會寫策略模式的原因。策略模式 從結構上來講策略模式分為乙個持有具體演算法引用的類 ...