java设计模式23_策略模式
2017-06-08 09:17
225 查看
策略模式
在策略模式中,可以在运行时更改类行为或其算法。 这种类型的设计模式属于行为模式。在策略模式中,创建表示各种策略对象和其行为根据其策略对象而变化的上下文对象。 策略对象更改上下文对象的执行算法
实现
这个示例中,将创建一个 Strategy 接口,定义实现策略接口的操作和具体策略类。 上下文类- Context 是使用策略的类。将使用上下文- Context 和策略对象来演示上下文行为基于其部署或使用的策略的变化。代码
package com.test; //第1步,创建一个类接口 interface Strategy { public int doOperation(int num1, int num2); } // 第2步, 创建三个实现相同接口的具体类 class OperationAdd implements Strategy { @Override public int doOperation(int num1, int num2) { return num1 + num2; } } class OperationMultiply implements Strategy { @Override public int doOperation(int num1, int num2) { return num1 * num2; } } class OperationSubstract implements Strategy { @Override public int doOperation(int num1, int num2) { return num1 - num2; } } // 第3步,创建上下文(Context )类 class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public int executeStrategy(int num1, int num2) { return strategy.doOperation(num1, num2); } } // 第4步,使用上下文- Context 在更改其策略时查看行为更改。 public class Test { public static void main(String[] args) { Context context = new Context(new OperationAdd()); System.out.println("10 + 5 = " + context.executeStrategy(10, 5)); context = new Context(new OperationSubstract()); System.out.println("10 - 5 = " + context.executeStrategy(10, 5)); context = new Context(new OperationMultiply()); System.out.println("10 * 5 = " + context.executeStrategy(10, 5)); } }
运行结果:
10 + 5 = 15 10 - 5 = 5 10 * 5 = 50
相关文章推荐
- 【GOF23设计模式】_策略模式_CRM中报价策略_GUI编程中布局管理器底层架构JAVA248
- Java设计模式-----Strategy策略模式
- JAVA设计模式解读之一: 策略模式
- [设计模式] - 策略模式(Java篇)
- Java设计模式 - 桥接模式与策略模式的区别
- java23中设计模式级解释代码
- [导入]C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式.zip(8.00 MB)
- Java设计模式 Design Pattern:策略模式 Strategy Pattern
- java 开发中的23中设计模式
- 设计模式:策略模式的实现 c++ 与 java
- 设计模式---策略模式(Strategy Pattern with java)
- Java设计模式 -- 策略模式
- java中的23中设计模式
- Java设计模式之策略模式
- Java设计模式学习之一---策略模式
- java设计模式之 策略模式
- java中的23中设计模式
- [设计模式] - 策略模式(Java篇)
- Java23模式之策略模式(Strategy)
- java 设计模式 学习笔记(4) 策略模式