當業務中出現新的需求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
以上也是符合組件化思想的