商场促销——策略模式
生活随笔
收集整理的這篇文章主要介紹了
商场促销——策略模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
策略模式(Strategy):它定義了算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓算法的變化,不會影響到使用算法的客戶。
“面向對象的編程,并不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的對象的抽象集合才是類”。打一折和打九折只是形式的不同,抽象分析出來,所有的打折算法都是一樣的,所以打折算法應該是一類。
Strategy類,定義所有支持的算法的公共接口。
?
//抽象算法類 abstract class Strategy{//算法方法public abstract void AlgorithmInterface(); }?
ConcreteStrategy封裝了具體的算法或行為,繼承與Strategy
//具體算法A class ConcreteStrategyA extends Strategy{//算法A實現方法public void AlgorithmInterface(){//算法A實現 } }//具體算法B class ConcreteStrategyB extends Strategy{//算法B實現方法public void AlgorithmInterface(){//算法B實現 } }//具體算法C class ConcreteStrategyC extends Strategy{//算法C實現方法public void AlgorithmInterface(){//算法C實現 } }Context,用一個ConcreteStrategy來配置維護一個對Strategy對象的引用。
//上下文 class Context{Strategy strategy;public Context(Strategy strategy){this.strategy = strategy;}//上下文接口public void ContextInterface(){strategy.AlgorithmInterface();} }客戶端代碼
static void Main(String[] args){Context context;context = new Context(new ConcreteStrategyA());context.ContextInterface();context = new Context(new ConcreteStrategyB());context.ContextInterface();context = new Context(new ConcreteStrategyC());context.ContextInterface;}策略模式是一種定義一系列算法的方法,從概念上來看,所有這些算法完成的都是相同的工作,只是實現不同,它可以以相同的方式調用所有的算法,減少了各種算法與使用算法類之間的耦合。
策略模式就是用來封裝算法的,但在實踐中,發現可以用它來封裝幾乎任何類型的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。
轉載于:https://www.cnblogs.com/chuji1988/p/4245125.html
總結
以上是生活随笔為你收集整理的商场促销——策略模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android -----ArrayAd
- 下一篇: GUI菜单——菜单条、菜单、子条目之间关