六、数据驱动——把变化抽象成数据

案例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:在数据驱动方法里,数据源可以转换形式,更换位置。比如将数组的数据移植到配置文件,这样它对主体代码完全是透明的,修改的风险明显降低。

 

posted @ 2020-02-27 11:13  天凉好个秋秋  阅读(255)  评论(0编辑  收藏  举报