1700465590
设计模式之禅 18.4 策略模式的扩展
1700465591
1700465592
先给出一道小学的题目:输入3个参数,进行加减法运算,参数中两个是int型的,剩下的一个参数是String型的,只有“+”、“-”两个符号可以选择,不要考虑什么复杂的校验,我们做的是白箱测试,输入的就是标准的int类型和合规的String类型,各位大侠,想想看,怎么做,简单得很!
1700465593
1700465594
有非常多的实现方式,我今天来说四种。先说第一种,写一个类,然后进行加减法运算,类图也不用画了,太简单了,如代码清单18-11所示。
1700465595
1700465596
代码清单18-11 最直接的加减法
1700465597
1700465598
public class Calculator{
1700465599
1700465600
//加符号
1700465601
1700465602
private final static String ADD_SYMBOL=”+”;
1700465603
1700465604
//减符号
1700465605
1700465606
private final static String SUB_SYMBOL=”-“;
1700465607
1700465608
public int exec(int a,int b,String symbol){
1700465609
1700465610
int result=0;
1700465611
1700465612
if(symbol.equals(ADD_SYMBOL)){
1700465613
1700465614
result=this.add(a,b);
1700465615
1700465616
}else if(symbol.equals(SUB_SYMBOL)){
1700465617
1700465618
result=this.sub(a,b);
1700465619
1700465620
}
1700465621
1700465622
return result;
1700465623
1700465624
}
1700465625
1700465626
//加法运算
1700465627
1700465628
private int add(int a,int b){
1700465629
1700465630
return a+b;
1700465631
1700465632
}
1700465633
1700465634
//减法运算
1700465635
1700465636
private int sub(int a,int b){
1700465637
1700465638
return a-b;
[
上一页 ]
[ :1.700465589e+09 ]
[
下一页 ]