关键词:
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
这个模式涉及到三个角色
-
环境角色
-
引用者
-
-
抽象策略角色
-
通常由一个接口或者抽象类实现
-
-
具体策略
-
包装相关的算法或者行为
-
例子
Student 类 (引用者)
public class Student { // 具体策略对象 private Action action; ? public Student( Action action){ this.action = action; } ? // 学生的行为 public void studentAction(){ action.action(); } }
Action 接口 (抽象策略角色)
public interface Action { //学生的动作 void action(); } ?
SleepAction类(具体策略)
public class SleepAction implements Action { @Override public void action() { System.out.println("正在睡觉......"); } } ?
PlayAction类 (具体策略)
public class PlayAction implements Action { @Override public void action() { System.out.println("正在玩耍......."); } }
Test类(测试类)
public class Test { public static void main(String[] args) { // 睡觉的行为 Action sleep = new SleepAction(); // 玩的行为 Action play = new PlayAction(); //小明 Student xiaoming = new Student(sleep); xiaoming.studentAction(); //小明明 Student mingming = new Student(play); mingming.studentAction(); } }
结果
正在睡觉......
正在玩耍.......
java设计模式之策略模式
策略模式属于对象的行为模式,策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换,策略模式让算法独立于使用它的客户而独立变化。策略模式使这些算法在客户端调用它们... 查看详情
java设计模式之策略模式
策略模式 定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户(大话设计模式)。策略模式UML图 策略模式代码 古代的各种计谋都是... 查看详情
java策略模式
策略模式策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。这个模式涉及到三个... 查看详情
java-设计模式-策略模式
策略模式其实就是对各种行为算法的包装,各种不同的行为的算法的分离。属于对象的行为模式。650)this.width=650;"src="http://www.jasongj.com/img/designpattern/strategy/Strategy.png"alt="StrategyPatternClassDiagram"/>策略模式类图,比较简单,没有自己... 查看详情
java设计模式之策略模式
1.策略模式的介绍 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。简单的... 查看详情
java设计模式7.策略模式模板方法模式观察者模式
策略模式策略模式的用意,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。环境角色:持有一个抽象策略角色的引用。抽象策略角色:... 查看详情
java策略模式(代码片段)
java设计模式—策略模式
定义 通过选择策略类,来执行不同算法分支。核心是通过注入对象,改变行为。此模式其实就是springIOC思想。优点 1.算法可以自由的切换。 2.避免使用多重条件判断。 3.便于扩展:增加一个策略只需... 查看详情
java设计模式—策略模式
定义 通过选择策略类,来执行不同算法分支。核心是通过注入对象,改变行为。此模式其实就是springIOC思想。优点 1.算法可以自由的切换。 2.避免使用多重条件判断。 3.便于扩展:增加一个策略只需... 查看详情
java策略模式,comparator
package 设计模式.策略模式;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Iterator;import java.util.List;/** * @dep 查看详情
java描述设计模式(22):策略模式
...、生活场景每年双十一,各大电商平台会推出不同的满减策略,当用户的消费金额满一定额度后,会进行减去一定的优惠额度,从而来一波清仓甩卖,使用策略模式来描述该流程。publicclassC01_InScene{publicstaticvoidmain(String[]args){//选择满... 查看详情
java之策略模式(大话设计模式)
...体验,坚持每天一个设计模式,直到熟练运用设计模式。策略模式定义了很多完成相同工作的算法,但实现不同,它可以以相同的方式调用所有的算法,减少了算法和调用算法的耦合。以下是大话设计模式的策略类图/***上下文*/... 查看详情
策略模式
策略模式,需要我们结合简单工厂模式,更高级地用法可能需要我们掌握Java反射机制。简单工厂模式我们在最早的时候介绍,我们也谈到了一点Java的反射机制。借着学习策略模式的机会,我们顺便复习一下简单工厂模式和反射... 查看详情
java设计模式-策略模式
...时候我们去计算用户的实际消费数额,这个时候可以用上策略模式;把计算这个过程策略化。首先是父类,这是个抽象算法,我们先抽象定义个算法方法:打折分为打几折,我们只需要将 查看详情
策略模式—java实现(转)
1.现实需求客户有了新的需求,这时我们直接新增策略即可,改很少的代码。基本符合我们面向对象原则中的开闭原则(对扩展开放,对修改关系),实现了高内聚低耦合。2.策略模式定义策略模式,又叫算法簇模式,就是... 查看详情
java设计模式1-策略模式
策略模式:分别封装行为接口,实现算法族,超类里放行为的接口对象,在子类里具体设定行为对象.原则就是:分离变化部分,封装接口,基于接口编程各种功能.为什么要用策略模式{继承带来的问题:(为策略模式)对类的局部改动,尤其是... 查看详情
java设计模式—策略模式
定义 通过选择策略类,来执行不同算法分支。核心是通过注入对象,改变行为。此模式其实就是springIOC思想。优点 1.算法可以自由的切换。 2.避免使用多重条件判断。 3.便于扩展:增加一个策略只需... 查看详情
java设计模式--策略模式
1.策略模式1.1定义策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。1.2底层机制将有共性的行为抽象为一个接口,其中有此种行为的声明。该接口的实现类都实现... 查看详情