Visual Studio 2005在IDE中增加了一些XP(极限编程)特性。Visual Studio 2005 中有几种重构的工具。通过菜单栏的“Refactor”菜单就可以找到。有以下这些:

Extract Method(提取方法)

Rename(重命名)

Encapsulate Field(封装字段)

Extract Interface(提取接口)

Promote Local Variable to Parameter(将局部变量提升为参数)

Remove Parameters(移除参数)

Recorder Parameters(重新排列参数)

以下做一一介绍:

        Extract Method 工具允许在已有的方法中选择一个连续的代码片段,然后将所选的代码从当前位置提取出来,形成一个新的方法。当已有的方法变得非常长(有很多行代码)或者方法在做几个不同的动作时,就需要使用这个工具。

        Rename工具,在编码过程中,可能要多次修改该类、接口、方法或者变量。这些名称通常分布在源代码的多个地方,而且还有可能在多个不同的源文件中。为了修改的方便,防止重命名的遗漏,可以使用这个工具。

       Encapsulate  Field 工具,在面向对象开发过程中,需要从类的字段创建属性,也就是常见的getter和setter,需要使用这个工具。

       Extract Interface 创建接口工具,首先要明确何时创建接口:当这个类中的某部分(子集)被若干个其他类(消费者)的方法调用时,我们需要为这组公共方法创建一个接口,实现共享方法(或者说特性,功能)。(注:其中一个类用工具创建接口修改以后,另一个类需要手动修改。)

       Promote Local Variable to Parameter 如面代码所示,widgetType 是局部变量,在使用该工具后,widgetType 作为参数传入,没有初始化的操作。(注:在使用这个工具前,局部变量必须初始化,因为只有初始化的值才能作为参数值通过该方法的引用传递给这个方法。)

未使用前:

public int[] BuildWidgets(int number)

{

     string[]  widgetsBuild = new[] string;

     string widgetType = "Blue Widget";

     return widgetBuilt;

}

使用后:

public int[] BuildWidgets(int number,string widgetType)

{

     string[] widgetsBuild = new[] string;

     //code to build widgets

     return widgetBuilt;

}

        Remove Parameters工具,允许改变方法签名中的参数顺序(传入参数的顺序),同时也改变所有引用该方法的地方的参数顺序。

推荐: Martin Fowler:    Improving  the Design of Existing Code