1700465763
1700465764
}
1700465765
1700465766
代码都非常简单,该部分就不再增加注释信息了。上下文类负责把策略封装起来,具体怎么自由地切换策略则是由高层模块负责声明的,如代码清单18-17所示。
1700465767
1700465768
代码清单18-17 场景类
1700465769
1700465770
public class Client{
1700465771
1700465772
//加符号
1700465773
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
}
[
上一页 ]
[ :1.700465763e+09 ]
[
下一页 ]