时间:2021-05-19
定义:一个类的行为或其算法可以在运行时更改。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。
特点:
1、算法可以自由切换。
2、避免使用多重条件判断。
3、扩展性良好。
企业级开发和常用框架中的应用:java.servlet.http.HttpServlet的service方法
实例:对两个数的操作行为。
public class Demo { public static void main(String[] args) { Strategy strategy1 = new StrategyAdd(); Strategy strategy2 = new StrategyDiv(); Context context1 = new Context(strategy1); context1.execute(10, 5); context1 = new Context(strategy2); context1.execute(10, 5); }}interface Strategy{ public void doOperation(int num1,int num2);}class StrategyAdd implements Strategy{ public void doOperation(int num1, int num2) { System.out.println("执行加法"); System.out.println(num1+"+"+num2+"="+(num1+num2)); } }class StrategySub implements Strategy{ public void doOperation(int num1, int num2) { System.out.println("执行减法"); System.out.println(num1+"-"+num2+"="+(num1-num2)); } }class StrategyMul implements Strategy{ public void doOperation(int num1, int num2) { System.out.println("执行乘法"); System.out.println(num1+"*"+num2+"="+(num1*num2)); } }class StrategyDiv implements Strategy{ public void doOperation(int num1, int num2) { System.out.println("执行除法"); System.out.println(num1+"/"+num2+"="+(num1/num2)); } }class Context{ private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void execute(int num1,int num2){ strategy.doOperation(num1, num2); }}策略模式强调的是运行时更改,可能在上面的代码中,这种运行时更改没有得到很好的体现,我们可以假设一个实际场景,就是当一个对象参数传到一个方法中来的时候,假设我们要根据参数的不同选择不同的方法,我们这是会考虑if-else来进行判断,而策略模式则是对这些if-else进行分类,每一个判断一个类,然后对象过来了,直接调用策略接口方法,而对象参数属于哪个具体类则是有jvm来判断,我们不必要去了解对象参数属性类型什么的,这样不仅简化了我们的开发工作,而且相比较于if-else,这样有更好的扩展性。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Java策略模式,供大家参考,具体内容如下1、策略模式(StrategyPattern)是一种比较简单的模式,也叫做政策模式(PolicyP
本文实例讲述了Java经典设计模式之策略模式。分享给大家供大家参考,具体如下:策略模式指:策略模式指将程序中可变部分抽象分离成一系列的算法,并将每一个算法封装起
23种设计模式第四篇:java策略模式定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式类图:策略模式是对算法的封装,把一系列的
本文实例讲述了java设计模式之策略模式原理与用法。分享给大家供大家参考,具体如下:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换
龚老板经营着一家饭店,他开创的“加1元”模式帮他的饭店轻松赚到了许多钱。这个“加1元”营销模式就是运用追加赠送策略,在顾客结账的时候,对顾客说这么一句话就轻松完