简化函数调用之一 :Rename Method(重新命名函数)
来源:互联网 发布:软件危机的危害 编辑:程序博客网 时间:2024/06/01 10:04
函数的名称未能揭示函数的用途。
修改函数名称。
动机(Motivation)
我极力提倡的一种编程风格就是:将复杂的处理过程分解成小函数。但是,如果做得不好,这会使你费尽周折却弄不清楚这些小函数各自的用途。要避免这种麻烦,关键就在于给函数起一个好名称。函数的名称应该准确表达它的用途。给函数命名有一个好办法:首先考虑应该给这个函数写上一句怎样的注释,然后想办法将注释变成函数名称。
人生不如意,十之八九。你常常无法第一次就给函数起一个好名称。这时候你可能会想:就这样将就着吧——毕竟只是一个名称而已。当心!这是恶魔的召唤,是通 向混乱之路,千万不要被它诱惑!如果你看到一个函数名称不能很好地表达它的用 途,应该马上加以修改。记住,你的代码首先是为人写的,其次才是为计算器写的。 而人需要良好名称的函数。想想过去曾经浪费的无数时间吧。如果给每个函数都起一个良好的名称,也许你可以节约好多时间。起一个好名称并不容易,需要经验; 要想成为一个真正的编程高手,「起名称」的水平是至关重要的。当然,函数签名式(signature)中的其他部分也一样重要;如果重新安排参数顺序,能够帮助提高代码的清晰度,那就大胆地去做吧,你有 Add Parameter 和Remove Parameter 这两项武器。
作法(Mechanics)
范例(Example)
我以getTelephoneNumber() 函数来取得某人的电话号码:
public String getTelephoneNumber() {
return ("(" + _officeAreaCode + ") " + _officeNumber);
}
现在,我想把这个函数改名为getOfficeTelephoneNumber() 。首先建立一个新函 数,命名为getOfficeTelephoneNumber() ,并将原函数getTelephoneNumber() 的代码拷贝过来。然后,让旧函数直接调用新函数:
class Person...
public String getTelephoneNumber(){
return getOfficeTelephoneNumber();
}
public String getOfficeTelephoneNumber() {
return ("(" + _officeAreaCode + ") " + _officeNumber);
}
现在,我需要找到旧函数的所有调用者,将它们全部改为调用新函数。全部修改完 后,就可以将旧函数删掉了。
如果需要添加或去除某个参数,过程也大致相同。
如果旧函数的调用者并不多,我可以直接修改这些调用者,令它们调用新函数,不必让旧函数充当中介。如果测试出错,我可以回到起始处,并放慢前进速度。
- 简化函数调用之一 :Rename Method(重新命名函数)
- 重新组织你的函数之一 :Extract Method(提炼函数)
- 简化函数调用之五 :Parameterize Method(令函数携带参数)
- 简化函数调用之八 :Replace Parameter with Method(以函数取代参数)
- 简化函数调用之十 :Remove Setting Method(移除设置函数)
- 简化函数调用之十一 :Hide Method(隐藏某个函数)
- 简化函数调用(一)
- 简化函数调用(二)
- 简化函数调用(三)
- 简化函数调用
- 5、简化函数调用
- 简化函数调用
- 重新组织函数----Extra Method(提炼函数)
- rename () 函数
- 重构—改善既有代码的设计100:简化函数调用(Making Method Calls Simpler)
- 重新组织函数--Inline Method(内联函数)
- 简化函数调用之十二 :Replace Constructor with Factory Method(以「工厂函数」取代「构造函数」)
- 第十章 简化函数调用
- WCF开发实例
- 贴吧里看到的IT学习体会
- 3维空间圆和椭圆公式
- linux下XHProf的安装和使用
- java swing定制jprogressbar
- 简化函数调用之一 :Rename Method(重新命名函数)
- CSAPP: shell lab
- jQuery插件中validate的使用
- linux free命令详解
- android NDK中如何终止线程
- 简化函数调用之二 :Add Parameter(添加参数)
- ThinkPHP3.1快速入门查询语言
- [C/C++标准库]_[初级]_[自定义std::map的key]
- 欧拉常数