《圣殿祭司的ASP.NET4.0专家技术手册》----1-10 程序代码重构

本节书摘来自异步社区《圣殿祭司的ASP.NET4.0专家技术手册》一书中的第1章,第10节,作者: 奚江华,译者: 武海军 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1-10 程序代码重构

圣殿祭司的ASP.NET4.0专家技术手册
所谓重构(Refactoring),是指对软件程序进行重新改写或调配,那干嘛不直接叫Rewrite?意义当然不一样,因为Rewrite只是单纯地改写,不一定有什么了不得的意义,而重构是含有目的性的改写,或重新优化整个程序架构,其中甚至有“方法论”在里头,也就是有许多程序方法学的指导性方针,“重构”一词其实存在软件界已久,而Java的Eclipse或NetBeans开发工具对“重构”也提供大量功能,如图1-19所示。

附注 Martin Fowler对重构的定义是:“对软件系统进行改造的程序,在不改变程序外部行为的情况下,以增进系统内部结构。”


14c0895b6bee7801553f70eab73d67c1a88166a5

虽然“重构”并不一定需要借助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所示。


f316fc78af0f0330a21184eca75056ce2b32ab60

在选中区域单击鼠标右键,在弹出的菜单中选择【重构】→【提取方法】,如图1-21所示。


943653a14dc470f725d0f28f0a7800620b43f211

输入新方法的名称“ReadEmployees”,单击“确定”按钮,程序一瞬间就被重构了,如图1-22和图1-23所示。


d5b421c8db0c992e13afb3e7e673b9066c0f3d77

范例1-3 使用重构的重新命名
再来看第二个例子,接着相同程序ExtractMethod.aspx。也许有的人嫌当初的方法名称ReadEmployees太长,想要缩短;或是方法名称当初命名不够好,想要改名。因此,重构的“重命名”刚好派上用场,具体步骤如下。

在ReadEmployees方法名称上按鼠标右键,在弹出的菜单中选取【重构】→【重命名】,如图1-24所示。


1887c07d5bab9a6bb627b43a7f5de7d94737f1dc

由于原来的“ReadEmployees”名称太长,且名称所传达的字义也不够明确,因此给它取一个较短且意义明确的名称“EmpInfo”。

Visual Studio很贴心地提供预览功能,提示哪些地方将会变更,让你确认是否符合预期;此外,若这个方法在程序中被多个事件调用,还可以在复选框中做进一步勾选,确定哪些要应用更新,如图1-25所示。


700389025fee6119a2fd8a99da6be3fe878ee2b3

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值