1-10 程序代码重构
圣殿祭司的ASP.NET4.0专家技术手册
所谓重构(Refactoring),是指对软件程序进行重新改写或调配,那干嘛不直接叫Rewrite?意义当然不一样,因为Rewrite只是单纯地改写,不一定有什么了不得的意义,而重构是含有目的性的改写,或重新优化整个程序架构,其中甚至有“方法论”在里头,也就是有许多程序方法学的指导性方针,“重构”一词其实存在软件界已久,而Java的Eclipse或NetBeans开发工具对“重构”也提供大量功能,如图1-19所示。
附注 Martin Fowler对重构的定义是:“对软件系统进行改造的程序,在不改变程序外部行为的情况下,以增进系统内部结构。”
虽然“重构”并不一定需要借助IDE工具,用人工照样能够进行,只是万一项目应用程序非常庞大,如几十人到上百人合力开发的项目,程序代码几十万行到上百万行,要以人工来进行重构不但困难,而且会错误百出。故有了工具的辅助,重构工作会进行得更顺利,大量地节省时间,消除人为错误。VS 2010提供下列重构功能:
提取方法(Extract Method);
重新命名(Rename);
封装字段(Encapsulate Field);
提取界面(Extract Interface);
删除参数(Remove Parameters);
重新排列参数(Reorder Parameters)。
以下举两个范例说明重构功能的应用。
范例1-2 使用重构的提取方法
一般而言,有的人会很直接地将ADO.NET程序写在按钮的Click事件中,这是不好的做法。比较好的做法是将它提取出来成为一个独立方法,或者是写成一个可重复使用的类别,故在此使用提取方法,将【读取员工数据】按钮的Click事件中ADO.NET程序提取出来,重构成为一个独立方法,请参考ExtractMethod.aspx程序,具体步骤如下。
先将欲重构的整段ADO.NET程序选中,如图1-20所示。
在选中区域单击鼠标右键,在弹出的菜单中选择【重构】→【提取方法】,如图1-21所示。
输入新方法的名称“ReadEmployees”,单击“确定”按钮,程序一瞬间就被重构了,如图1-22和图1-23所示。
范例1-3 使用重构的重新命名
再来看第二个例子,接着相同程序ExtractMethod.aspx。也许有的人嫌当初的方法名称ReadEmployees太长,想要缩短;或是方法名称当初命名不够好,想要改名。因此,重构的“重命名”刚好派上用场,具体步骤如下。
在ReadEmployees方法名称上按鼠标右键,在弹出的菜单中选取【重构】→【重命名】,如图1-24所示。
由于原来的“ReadEmployees”名称太长,且名称所传达的字义也不够明确,因此给它取一个较短且意义明确的名称“EmpInfo”。
Visual Studio很贴心地提供预览功能,提示哪些地方将会变更,让你确认是否符合预期;此外,若这个方法在程序中被多个事件调用,还可以在复选框中做进一步勾选,确定哪些要应用更新,如图1-25所示。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。