六、数据驱动——把变化抽象成数据
案例1
张牙舞爪的if-else
if(type == "mp4"){ isValid = true; }else if(type == "txt"){ isValid = true; }else{ .... }
用数组装变化的数据
string[] validTypeArray = {"mp4","txt","ppt",...} bool isValidFileType(string type){ return validTypeArray.Contains(type); }
案例2
在批量处理数据的时候遇到一个特殊数据需要进行特别处理
//处理特殊数据,并进行额外操作 if(number == "123"){ DoSomething(); }
这样做不是一个好办法,因为他没有预见变化。
版本2:把数据隔离到一个数组里面
//定义一个数组去承载这些特殊函数 Array exceptionNumbers = { "123","456" }; //定义一个判断函数 bool isExceptionNumber(string number){ return exceptionNumbers.contains(number); } if(isExceptionNumber(string number)){ DoSomething(); }
版本3:在数据驱动方法里,数据源可以转换形式,更换位置。比如将数组的数据移植到配置文件,这样它对主体代码完全是透明的,修改的风险明显降低。