【1】源代码
1 // 重构前 2 QString foundPerson(QStringList people) 3 { 4 for (int i = 0; i < people.size(); ++i) 5 { 6 if (people[i].compare("Don") == 0) 7 { 8 return "Don"; 9 } 10 11 if (people[i].compare("John") == 0) 12 { 13 return "John"; 14 } 15 16 if (people[i].compare("Dave") == 0) 17 { 18 return "Dave"; 19 } 20 } 21 22 return QString(); 23 }
【2】替换算法
1 // 重构后 2 QString foundPerson(QStringList people) 3 { 4 QStringList candidates = {"Don", "John", "Dave"}; 5 for (int i = 0; i < people.size(); ++i) 6 { 7 if (candidates.contains(people[i])) 8 { 9 return people[i]; 10 } 11 } 12 return QString(); 13 }
【3】总结
想要把某个算法替换为另一个更清晰的算法。将函数本体替换为另一个算法。
Good Good Study, Day Day Up.
顺序 选择 循环 总结