重构
老陈酿
这个作者很懒,什么都没留下…
展开
-
重构代码(一)
public void toCoin(ModelMap modelMap, String Id, int startIndex, HttpServletRequest request) { // 根据手机号获取会员id [code="java"][/code]String phone = request.getParameter("phone"); // Id = "...2014-11-22 10:51:56 · 91 阅读 · 0 评论 -
Inline Temp 内联临时变量
一、动机 多半作为Replace Temp with Query的一部分使用。 二、做法 1、检查给临时变量赋值的语句,确保等号右侧的表达式没有副作用。 2、将此临时变量声明为final 3、找到该临时变量的所有引用点,将它们替换为临时变量赋值的表达式。 4、修改为所有引用点后,删除该临时变量的声明和赋值语句。...原创 2014-12-17 09:24:44 · 203 阅读 · 0 评论 -
Replace Temp with Query替换临时变量为函数调用
一、动机 临时变量时暂时的,只能在所属函数内使用,所以它们会驱使你写出更长的函数。 将临时变量替换为一个查询,那么同一个类中的所有函数豆浆可以获得这份信息,是你能够为这个类编写更清晰的代码。 二、做法 1、找出只被赋值一次的临时变量 2、将该临时变量声明为final 3、将“对该临时变量赋值”之语句的等号右侧部分提炼到一个独立函数中。 4、在该临时变量身上...原创 2014-12-17 09:25:03 · 139 阅读 · 0 评论 -
Split Temporary Variable 分解临时变量
一、相关概念 1、循环变量:随循环的每次运行而改变的变量 for(User u:userList) 中的u。 2、结果收集变量:负责将“通过整个函数的运算”而构成的某个值手机起来。作用通常是累加、字符串接合、写入流或者向集合中添加元素。 二、适用范围 1、除了循环变量、结果手机变量之外,还有很多临时变量用于保存一段冗长代码的运算结果,以便稍后使用。如果这样的变量被赋值超过...原创 2014-12-17 09:25:40 · 150 阅读 · 0 评论 -
Extract Method 提炼方法
一、适用范围 过长的函数或者一段需要注释才能让人理解用途的代码应该被独立构造为一个函数。 二、既得利益 1、函数的粒度减小,函数被复用的机会更大。 2、函数的粒度减小,函数覆写也会更容易。 三、做法 1、创造一个函数,并以它的意图命名(以它做什么而不是怎样做命名) 2、将提炼出的代码从源函数赋值到目标函数中。 3、找出提炼出的代码中使用的源函数中的局部变量和...原创 2014-12-17 09:26:10 · 187 阅读 · 0 评论 -
第三章 代码中的坏味道
一、Duplicated Code(重复代码) 1、同一个类中的两个函数含有相同表达式。采用Extract Method提炼出重复的代码。 2、两个互为兄弟的子类内含有重复表达式。对每个类都使用Extract Method提炼出重复的代码,然后在对被提炼出的代码使用Pull Up Method,将它推入父类中。如果两个兄弟类中的代码只是类似而非相同时,使用Extract Method将类似部分...原创 2014-12-17 09:26:41 · 207 阅读 · 0 评论