当业务中出现新的需求A时,代码中我们经常这样写
if(A){
action1();
}
并且A还出现在程序的各个地方
if(A){
action2();
}
if(A){
actionn();
}
随着业务新需求类型的出现, BCDE,会面临需求的膨胀,代码会是如下的样子
if(A or B){
action1;
}
if(C or D or E){
action2;
}
想阅读这种代码就比较困难了,也很难维护,你已经很难去记忆ABCDE在程序各处控制程序的差异性了。代码不应该依赖于具体业务,而是依赖是否可做某种行为,具体业务再和是否可做某种行为进行映射,修改代码成下面的样子:
if(action1){
action1();
}
if(acton2){
aciton2();
}
if(actionn){
actionn()
}
代码就很容易看懂了,具体的需求通过配置来实现。
A action1=true action2=false acitonn=true
B action1=true action2=false acitonn=true
C action1=false action2=true acitonn=true
D action1=false action2=true acitonn=true
E action1=false action2=true acitonn=true
以上也是符合组件化思想的