看看Refactoring

 

初涉Refactoring

       你不能从英汉字典或者金山词霸中找到这个单词:Refactoring。因为它是一个不常用的计算机专用术语。我们先来看看它的定义(鉴于我的翻译水平,偶先把它的英文定义列出):

Refactoring is a program transformations that reorganize a program without changing its behavior. 翻译过来就是:因素重组(Refactoring)是在不改变程序行为的前提下对程序(代码)的重组的一个转换过程。

Refactoring的提出者是美国伊利诺斯州大学计算机科学系的Ralph E. Johnson(点击访问他的个人主页)。他给了我们关于对规范化软件编码的一个新的观念:在不改变程序功能的前提下提高软件代码的简洁稳定和可读性。

首先我们举两个个简单的例子,来说明Refactoring

 

Example 1:

       原来的代码:

       double potentialEnergy(double mass, double height) {

              return mass * height * 9.81;

       }

       可是这个9.81是什么东西呢,没人告诉我,好,下面看修改过后的代码:

static final double GRAVITATIONAL_CONSTANT = 9.81;

double potentialEnergy(double mass, double height) {

              return mass * GRAVITATIONAL_CONSTANT * height;

       }

 

       Example 2:

       if (date.before (SUMMER_START) || date.after(SUMMER_END))

                     charge = quantity * _winterRate + _winterServiceCharge;

              else charge = quantity * _summerRate;

       这里各种表达式很长也很难懂,这样,我们就用一个既简单又好懂的来替代它

       if (notSummer(date))

                     charge = winterCharge(quantity);

              else charge = summerCharge (quantity);

       把各种复杂的表达式整理成单独的函数,并且用函数名将其功能表示出来,这样的程序清楚明白。

 

       由上面两个例子我们看出,其实Refactoring实质上就是对程序代码的一种优化。使代码更具有亲和力,便于维护和代码重用。这种思想提倡良好的编程风格、清晰的编程思路,不仅有利于程序的阅读者,也有利于程序的编制者。使程序具有更好的结构。

 

关于 Refactoring 有本好书《 Refactoring: Improving the Design of Existing Code 》,是 Martin Fowler 写的,可以访问 http://www.refactoring.com 来获得更多有关信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值