
策略模式(Strategy)
文章目录
- 策略模式(Strategy Pattern)
- 策略模式的定义
- 策略模式的意义
- 策略模式的组成
- 策略模式的实现
- 策略模式的编写步骤
- 策略模式简单应用
- 第一步我们先对策略对象定义一个公共接口
- 编写策略类实现上面的接口
- 加法策略类AddStrategy
- 减法策略类SubtractStrategy
- 乘法策略类MultiplyStrategy
- 除法策略类DivideStrategy
- 在使用策略对象的类中保存一个对策略对象的引用
- 在使用策略对象的类中,实现对策略对象的set和get方法(注入)或者使用构造方法完成赋值。
- 创建一个使用类
- 策略模式的缺点
- 解决方案
collectiongs其实就是策略模式,他其中有很多的静态方法供大家使用。 现在我们自己用策略模式来实现加减乘除 首先我们创建一个包,然后在包里创建几个类。
第一步我们先对策略对象定义一个公共接口就是Strategy.java接口
package fiftyFirst; public interface Strategy { public int calculate(int a , int b); } 编写策略类实现上面的接口 加法策略类AddStrategy public class AddStrategy implements Strategy { @Override public int calculate(int a, int b) { // TODO 自动生成的方法存根 return a + b; } } 减法策略类SubtractStrategy public class SubtractStrategy implements Strategy { @Override public int calculate(int a, int b) { // TODO 自动生成的方法存根 return a - b; } } 乘法策略类MultiplyStrategy public class MultiplyStrategy implements Strategy { @Override public int calculate(int a, int b) { // TODO 自动生成的方法存根 return a * b; } } 除法策略类DivideStrategy public class DivideStrategy implements Strategy { @Override public int calculate(int a, int b) { // TODO 自动生成的方法存根 return a / b; } } 在使用策略对象的类中保存一个对策略对象的引用创建Evironment.java类
public class Environment { private Strategy strategy; public int calculate(int a, int b) { return strategy.calculate(a, b); } } 在使用策略对象的类中,实现对策略对象的set和get方法(注入)或者使用构造方法完成赋值。完善Evironment.java
public class Environment { private Strategy strategy; public Environment(Strategy strategy) { this.strategy = strategy; } public Strategy getStrategy() { return strategy; } public void setStrategy(Strategy strategy) { this.strategy = strategy; } public int calculate(int a, int b) { return strategy.calculate(a, b); } } 创建一个使用类创建Client.java
public class Client { public static void main(String[] args) { AddStrategy addStrategy = new AddStrategy(); Environment environment = new Environment(addStrategy); System.out.println(environment.calculate(3, 4)); SubtractStrategy subtractStrategy = new SubtractStrategy(); environment.setStrategy(subtractStrategy); System.out.println(environment.calculate(3, 4)); MultiplyStrategy multiplyStrategy = new MultiplyStrategy(); environment.setStrategy(multiplyStrategy); System.out.println(environment.calculate(3, 4)); DivideStrategy divideStrategy = new DivideStrategy(); environment.setStrategy(divideStrategy); System.out.println(environment.calculate(3, 4)); } }结果是: 7 -1 12 0
策略模式的缺点== 采用工厂方法==
👁️ 阅读量:0
© 版权声明:本文《策略模式(Strategy)》内容均为本站精心整理或网友自愿分享,如需转载请注明原文出处:https://www.zastudy.cn/wen/1686592917a301226.html。