上次我们介绍了VB2005的免费重构插件——Refactor! for VB2005和其中两项视觉效果很酷的重构功能。这次我们继续介绍Refactor!的功能。
创建方法重载(Create Overload)
Visual Basic支持可选参数,这给我们开发Office程序时带来巨大的方便,然而却不推荐在自己的代码中使用可选参数。因为可选参数只有Visual Basic支持,C#和多数语言都无法享受可选参数,而必须对所有参数照单全输。这时我们可以使用方法重载来创建接受不同数量参数的方法。使用Refactor!的创建方法重载功能,可以自动创建减少参数个数的新重载,并确保功能正确。比如有一个方法“MyMethod”带有三个参数,选中“MyMethod”,就会弹出智能标记,这时从智能标记的菜单中选择“Create Overload”,先按上下键确定重载方法的位置,然后用Tab键在参数间移动,按空格键去除不要的参数,然后按回车创建一个新的重载。
封装字段(Encapsulate Field)
在面向对象封装性的原则下,我们通常不将类的字段暴露给调用者,而是使用.NET的属性来封装对字段的访问。使用属性而不是字段的好处有很多,比如我们可以在属性中增加额外的验证代码,使字段不被非法修改。属性还可以是可重写的(即虚拟的),这样就有利于进行下一步的设计。如果我们已经讲字段暴露给类的外部,那么就可以用封装字段这一重构手段将所有调用方转移到属性的上去。操作方法是:选中一个字段,然后从智能标记中选中“Encapsulate Field”,按上下建确定新属性的位置,然后按下回车。旧字段将被自动重名名,使原有的引用转移到新建的属性上去。
以卫语句取代嵌套条件式(Replace Nested Conditional with Guard Clause)
常常见到这样的代码:很多If一层套一层,使得代码的流程难以看清楚。有时候外层的If条件很少失败,我们就可以将其这条分支独立成为一个If…End If语句,当条件为真立即退出方法,这就是“卫语句”。使用“以卫语句取代嵌套条件式”可以将含有If嵌套的判断语句转变为排列整齐的卫语句。只要在If关键字上使用智能标记即可。
查看本文来源