提取方法 (Extract Method) — 意思是将大段代码中的一部分提取后,构成一个新方法;还有一个含义是将多个方法中公用的部分提供出来,形式一个新的方法,
这种重构可以使整段程序的结构变得更清晰,增加可读性,扩展性和可维护性。
如,有两个方法,它们的实现部分很雷同,看代码:
1 public string ChooseItem1() 2 { 3 return SelectItem(1); 4 } 5 6 public string ChooseItem2() 7 { 8 return SelectItem(2); 9 }
而事实上,chooseitem1与chooseitem2的方法体基本一至,只是为selectitem方法传参时,一个是传1,另一个是传2,而我们稍微对程序进行修改,它的表现
将会完全两样,看代码:
1 private string ChooseItem(int value) 2 { 3 return SelectItem(value); 4 } 5 6 public string ChooseItem1() 7 { 8 return ChooseItem(1); 9 } 10 11 public string ChooseItem2() 12 { 13 return ChooseItem(2); 14 }
OK,感觉我们优化的代码比原来的代码多了,显得更麻烦了,其实则不然,这个代码是将可能发变的,公共的代码片断进行封装,然后再由别外方法去调用,这样
如果我们希望修改功能,只需要修改ChooseItem这个核心方法即可,而不需要一个一个的去拷贝代码。