在Visual Studio 2005中实现VB重构 |
来源:中国IT实验室收集整理 作者:佚名 时间:2007-5-30 |
|
四、 重构:提取方法
在编码中一种最常见的问题是,函数太长。小的函数可以重用而且更为容易地被重新改编进新的行为中。一般情况下,很长的代码关系紧密的函数通常仅用于限制非常严格的情况下。为了使代码易于重用,你可以提取代码片断以形成一些命名方法。除了这些命名的方法要易于重用外,其命名还要清晰地解释该方法的目的。
为使用提取方法,选择一段你想要转换成一个命名方法的代码片断,然后在选择的代码片断上右击鼠标,并且选择"Refactor!|提取方法"。为了说明问题,我使用了一个简单的for循环-它把HeartRate向控制台输出100次。
如果你仅有一个可用的重构,那么可以使用一键重构-通过按下Ctrl+~-这可以激活重构并且显示一个动作提示(见图2)。再一次,在它的当前位置前后移动选择器并且按下回车键。在按下回车键后,方法PseudoLongMethod和新提取的方法被修改,详见列表2。
 图2:当前可用的重构和动作提示,提取方法 | 列表2:方法PseudoLongMethod被重构,这使得BunchOfCode成为一个独立的方法:
Imports System.ServiceProcess Public Class WillRefactor Private HeartRate As Integer Public Property HeartRate1() As Integer Get Return HeartRate End Get Set(ByVal value As Integer) HeartRate = value End Set End Property Public Sub PseudoLongMethod() ' a bunch of code BunchOfCode() End Sub Private Sub BunchOfCode() Dim I As Integer For I = 1 To 100 Console.WriteLine(HeartRate) Next End Sub End Class | 五、 重构:创建重载
假定BunchOfCode的定义是接收一个Count参数(Count用于循环的上限值);并且假定,在某些情况下已知一个缺省值。你可以右击BunchOfCode(见列表3)并且选择"Refactor!|Create Overload"以创建一个新方法来重载BunchOfCode并且用一个缺省值来调用原始方法(见列表4)。
列表3:具有单个参数的新版本代码
Private Sub BunchOfCode(ByVal count As Integer) Dim I As Integer For I = 1 To count Console.WriteLine(HeartRate) Next End Sub | 列表4:由Refactor所创建的旧的和新的重载的BunchOfCode方法:
Private Sub BunchOfCode(ByVal count As Integer) Dim I As Integer For I = 1 To count Console.WriteLine(HeartRate) Next End Sub Private Sub BunchOfCode() Dim lCount As Integer = 0 BunchOfCode(lCount) End Sub | 六、 重构的代码是很好的代码
重构是重要的,并不是因为其潜在的技术都是新技术,而是因为该技术被加以描述而且动机和所希望的结果都是非常明确的。重构能改进内部的结构而不改变现有代码的外在行为。它去掉了什么是好的代码和什么是差一些的代码的主观性:经重构的代码被认为是好的,而未经重构的代码被认为差一些。(完美的代码可能不存在。)
代码是好一些还是差一些并不比它是否能够工作更为重要。重构增加了代码在发展和进化过程中将继续工作的可能性。上一页 [1] [2]
 【责编:runlz】 |
 |
|
|
|