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

简介: 所谓重构(Refactoring),是指对软件程序进行重新改写或调配,那干嘛不直接叫Rewrite?意义当然不一样,因为Rewrite只是单纯地改写,不一定有什么了不得的意义,而重构是含有目的性的改写,或重新优化整个程序架构,其中甚至有“方法论”在里头,也就是有许多程序方法学的指导性方针,“重构”一

本节书摘来自异步社区《圣殿祭司的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

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

相关文章
|
2月前
|
域名解析 缓存 Linux
如何让你的.NET WebAPI程序支持HTTP3?
如何让你的.NET WebAPI程序支持HTTP3?
64 2
如何让你的.NET WebAPI程序支持HTTP3?
|
9月前
|
安全 Shell 数据库
「学习记录」.NET程序的数据库密码解密
「学习记录」.NET程序的数据库密码解密
|
10月前
|
XML 存储 JSON
使用自定义XML配置文件在.NET桌面程序中保存设置
本文将详细介绍如何在.NET桌面程序中使用自定义的XML配置文件来保存和读取设置。除了XML之外,我们还将探讨其他常见的配置文件格式,如JSON、INI和YAML,以及它们的优缺点和相关的NuGet类库。最后,我们将重点介绍我们为何选择XML作为配置文件格式,并展示一个实用的示例。
107 0
|
2月前
|
XML 开发框架 .NET
LabVIEW中加载.NET 2.0,3.0和3.5程序集
LabVIEW中加载.NET 2.0,3.0和3.5程序集
38 4
|
10天前
|
存储 安全 C#
技术心得记录:强命名的延迟与关联在.net程序集保护中的作用及其逆向方法
技术心得记录:强命名的延迟与关联在.net程序集保护中的作用及其逆向方法
|
11天前
|
开发框架 前端开发 JavaScript
程序与技术分享:ASP.NET发展史(【译】)
程序与技术分享:ASP.NET发展史(【译】)
13 0
|
11天前
|
网络协议
技术好文:Smark.Net实现简单聊天程序
技术好文:Smark.Net实现简单聊天程序
|
1月前
|
自然语言处理 C# 图形学
​一款开源的.NET程序集反编译、编辑和调试神器
本文介绍了.NET反编译和调试工具dnSpyEx的使用方法。dnSpyEx是dnSpy的非官方Fork版本,支持.NET Framework、.NET Core和Unity程序集的调试和编辑,具有多种语言界面。主要功能包括:浅色、蓝色和深色主题,调试支持,代码编辑以及多语言支持。用户可以从GitHub下载并直接运行dnSpyEx,无需安装。通过创建测试项目,编译成dll文件,然后使用dnSpyEx进行调试和编辑程序集中的代码和IL指令。此外,文章还提供了项目源码地址和相关优秀项目的链接。
|
2月前
|
开发框架 .NET 开发工具
LabVIEW加载.NET程序集
LabVIEW加载.NET程序集
36 1
|
8月前
|
开发框架 .NET 测试技术
.NET Core 日志记录程序和常用日志记录框架
本文主要内容为.NET Core的日志记录程序和常使用的日志记录框架的简单使用 首先,打开VS2019新建一个ASP.NET Core Web Api项目,项目创建好后会有一个集成好的天气预报的类和控制器,接下来,我们的方法就在天气控制器里完成。
57 0