首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java对策模式

2012-09-18 
java策略模式Uml图:?策略:?publicinterfaceComputableStrategy {publicabstractdoublecomputeScore( doubl

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));      }}
?

热点排行