代码结构及逻辑的一些思考
问题:
a函数是根据传入参数的不同类型,选择不同的函数去执行操作.但是在执行不同的函数之前,需要做一些数据上的处理,那么这部分处理是放在各个被调用的函数中还是放在a函数中统一处理好呢?
function a (args){ if (args =='1' || args =='2' || args =='5') { doB(abc,args); } if (args =='3' || args =='4') { doC(abc,args); } if (args =='1') doB(abc); if (args =='2') doC(abc); if (args =='3') doD(abc); if (args =='4') doE(abc); if (args =='5') doF(abc);}function doB(abc){ var abc = args+"123"; ...}function doC(abc){ var abc = args+"123"; ...}function doD(abc){ var abc = args+"456"; ...}function doE(abc){ var abc = args+"456"; ...}function doF(abc){ var abc = args+"123"; ...}这种写法逻辑不混乱了,但是,部分代码里有重复的部分存在.如果对于同一个类型的args做相同的修改,那么每次修改都要到各个相应的函数中去修改,如果忘修改一处,就会留下一个隐患.
但是,如果需要做的修改是,当args=='1',取的args值变为var abc = args+"789";
那么在做代码跟踪及修改的时候,就只需要关注doB就可以了,不需要再看a函数的处理.在这一点上,这种方式又是比较好的.
怎么做,才能保证代码的逻辑清楚,又能保证代码的修改时尽量少的更改代码?在两者存在矛盾的时候,取优先考虑哪一种呢?
个人倾向于第二种方式,但是还没有找到相应的理论依据,所以先在此记录下来,如有高手路过,也希望能有所指点