打字猴:1.700465774e+09
1700465774 public final static String ADD_SYMBOL=”+”;
1700465775
1700465776 //减符号
1700465777
1700465778 public final static String SUB_SYMBOL=”-“;
1700465779
1700465780 public static void main(String[]args){
1700465781
1700465782 //输入的两个参数是数字
1700465783
1700465784 int a=Integer.parseInt(args[0]);
1700465785
1700465786 String symbol=args[1];//符号
1700465787
1700465788 int b=Integer.parseInt(args[2]);
1700465789
1700465790 System.out.println(“输入的参数为:”+Arrays.toString(args));
1700465791
1700465792 //上下文
1700465793
1700465794 Context context=null;
1700465795
1700465796 //判断初始化哪一个策略
1700465797
1700465798 if(symbol.equals(ADD_SYMBOL)){
1700465799
1700465800 context=new Context(new Add());
1700465801
1700465802 }else if(symbol.equals(SUB_SYMBOL)){
1700465803
1700465804 context=new Context(new Sub());
1700465805
1700465806 }
1700465807
1700465808 System.out.println(“运行结果为:”+a+symbol+b+”=”+context.exec(a,b,symbol));
1700465809
1700465810 }
1700465811
1700465812 }
1700465813
1700465814 运行结果与方案一相同。我们想想看,在该策略模式的一个具体应用中,我们使用Context准备了一组算法(加法和减法),并封装了起来,具体使用哪一个策略(加法还是减法)则由上层模块声明,这样扩展性非常好。
1700465815
1700465816 现在只剩最后一个方案了,一般最后出场的都是重量级的人物,压场嘛!那就请出我们最后一个重量级角色,音乐响起,一个黑影站定舞台中央,所有灯光突然聚焦,主角缓缓抬起头,它就是——策略枚举!我们来看看其真实实力,如代码清单18-18所示。
1700465817
1700465818 代码清单18-18 策略枚举
1700465819
1700465820 public enum Calculator{
1700465821
1700465822 //加法运算
1700465823
[ 上一页 ]  [ :1.700465774e+09 ]  [ 下一页 ]