读书人

java对策模式

发布时间: 2012-09-18 16:21:42 作者: rapoo

java策略模式


Uml图:


java对策模式

?

策略:

?

public   interface   ComputableStrategy {       public   abstract   double   computeScore( double [] a);} 

具体策略:
public class StrataegyOne implements ComputableStrategy {      @Override      public double computeScore(double[] a) {            double score=0,sum=0;            for (int i = 0; i < a.length; i++) {                  sum+=a[i];            }            score=sum/a.length;            return score;      }}
?上下文:
public class GymnasticsGame {      ComputableStrategy strategy;      public void setStrategy(ComputableStrategy strategy) {            this.strategy=strategy;      }      public double getPersonScore(double[] a) {            if (strategy!=null) {                  return strategy.computeScore(a);            }            else {                  return 0;            }      }}
?
策略模式使用:
public class Application {      public static void main(String[] args) {            double[] a = { 1, 5, 7.9, 9.8 };            double[] b = { 3, 5, 6, 9, 9.7 };            GymnasticsGame game = new GymnasticsGame();// 上下文对象            game.setStrategy(new StrataegyOne());// 使用策略1            System.out.println("使用策略1");            System.out.println(game.getPersonScore(a));            System.out.println(game.getPersonScore(b));            System.out.println("使用策略2");            game.setStrategy(new StrategyTwo());// 使用策略1            System.out.println(game.getPersonScore(a));            System.out.println(game.getPersonScore(b));      }}
?

读书人网 >编程

热点推荐