从超大方法中的现有代码创建一个新的、更小的方法的实际重构实践称为提取方法。
例子
原始代码
void printOwing() {
printBanner();
//print details
System.out.println ("name: " + _name);
System.out.println ("amount " + getOutstanding());
}
执行提取方法后
void printOwing() {
printBanner();
printDetails(getOutstanding());
}
void printDetails (double outstanding) {
System.out.println ("name: " + _name);
System.out.println ("amount " + outstanding);
}
如果您尝试从方法中提取的代码甚至不属于开始的类,那么您可以类似地使用Extract Class。
业内首屈一指的软件工匠之一 Martin Fowler 写了一本关于重构概念的精彩书籍,您可以在此处找到。本书将为您提供逐步的方法来解决您将需要的大部分重构。
此外,JetBrains为几乎所有内置了一些非常好的重构工具的语言制作了一些非常好的 IDE。他们还有一个名为ReSharper的 Visual Studio 插件,它提供了一些相同的功能和优点。