概括
把某个算法替换为另一个更清晰的算法。
将函数本体替换为另一个算法。
将函数本体替换为另一个算法。
例子
String foundPerson(String[] people){
for (int i = 0; i < people.length; i++) {
if (people[i].equals ("Don")){
return "Don";
}
if (people[i].equals ("John")){
return "John";
}
if (people[i].equals ("Kent")){
return "Kent";
}
}
return "";
}
重构后
String foundPerson(String[] people){
List candidates = Arrays.asList(new String[]{"Don", "John","Kent"});
for (int i = 0; i < people.length; i++) {
if(candidates.contains(people[i]))
return people[i];
}
return "";
}
使用此项重构手法之前,先要确定自己已经尽可能分解了源函数。替换一个巨大而复杂的算法很困难,只有先将它分解为较简单的小型函数,然后才可能很有把握的进行算法替换。
做法
.
实践
.