首页 > 其他 > 详细

策略模式

时间:2017-12-04 11:03:28      阅读:237      评论:0      收藏:0      [点我收藏+]

描述

策略模式中,一个策略类的行为或方法,可以在运行时更改。

解释一下:假设我们有一个游戏策略生成器,输入不同情况,就会产生不同对应策略出来,这就是策略模式。即我们只需要建立一个策略器,就能在不同状况下得到不同策略。

实例

interface MathAlgorithm {
   public int calculate(int num1, int num2);
}
class MathAdd implements MathAlgorithm{
   @Override
   public int calculate(int num1, int num2) {
      return num1 + num2;
   }
}
class MathSubstract implements MathAlgorithm{
   @Override
   public int calculate(int num1, int num2) {
      return num1 - num2;
   }
}
class MathMultiply implements MathAlgorithm{
   @Override
   public int calculate(int num1, int num2) {
      return num1 * num2;
   }
}
//相当于一个策略生成器
class MathContext {
   private MathAlgorithm algorithm;

   public MathContext(MathAlgorithm strategy){
      this.algorithm = strategy;
   }

   public int execute(int num1, int num2){
      return algorithm.calculate(num1, num2);
   }
}
public class Main {
   public static void main(String[] args) {
      MathContext context = new MathContext(new MathAdd());    
      System.out.println("10 + 5 = " + context.execute(10, 5));

      context = new MathContext(new MathSubstract());    
      System.out.println("10 - 5 = " + context.execute(10, 5));

      context = new MathContext(new MathMultiply());    
      System.out.println("10 * 5 = " + context.execute(10, 5));
   }
}

 

代码来源:特别感谢 w3school java设计模式之策略模式

策略模式

原文:http://www.cnblogs.com/K-artorias/p/7976008.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!