策略模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
下面我们通过加减乘的运算来实现策略模式。
策略模式的实现;
1. 创建一个策略接口
public interface Strategy {
public int operate(int x,int y);
}
2. 创建策略接口的三个实现类,分别表示加减乘运算
public class AddStrategy implements Strategy {
@Override
public int operate(int x, int y) {
return x + y;
}
}
public class SubStrategy implements Strategy {
@Override
public int operate(int x, int y) {
return x - y;
}
}
public class MultStrategy implements Strategy {
@Override
public int operate(int x, int y) {
return x * y;
}
}
3. 使用 Context 来查看当它改变策略 时的行为变化。
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public int execute(int x,int y){
return strategy.operate(x,y);
}
}
4. 使用策略模式完成加减乘运算
public class StrategyMain {
public static void main(String[] args) {
int x = 24;
int y = 8;
Context context1 = new Context(new AddStrategy());
int add = context1.execute(x,y);
System.out.println("x = 24, y = 8, x+y=" + add);
Context context2 = new Context(new SubStrategy());
int sub = context2.execute(x,y);
System.out.println("x = 24, y = 8, x-y=" + sub);
Context context3 = new Context(new MultStrategy());
int mult = context3.execute(x,y);
System.out.println("x = 24, y = 8, x*y=" + mult);
}
}
创建型模式
结构型模型
行为型模式
下一节:
状态模式:【每天一个java设计模式(十七)】 - 状态模式
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43598687/article/details/122092710
内容来源于网络,如有侵权,请联系作者删除!