文章分类 -  重构整理

对重构一书的研究整理
重构研究:Replace Type Code with Subclasses(以子类取代类型码),
摘要:动机:如果你的类中有一个不可变的类型码,它会影响类的行为如果类中有一个标志,看起来像是switch这样,或者if-else if-else if这种结构,并且以后可能还要增加其他类型的标志,就可以使用这种重构方法做法:1.先使用Self Encapsulate Field(自封装字段)将类型码自我封装起来,如果类型码有在构造函数里赋值,就需要将构造函数改为工厂函数来创建对象2.为类中的每一个标志建立一个子类,在每个子类中覆写类型码的get函数,返回相应的类型码3.从超类中删掉保存标志的字段,将超类的get函数声明为抽象函数示例: 1 public class Employee { 2 3 .. 阅读全文

posted @ 2012-08-01 14:23 低调点 阅读(232) 评论(0) 推荐(0)

重构研究:Replace Method with Method Object(用方法对象代替方法)
摘要:动机:如果一个函数的局部变量数量很多,那么分解这个函数是很困难的。虽然可以使用Replace Temp with Query(用查询函数代替临时变量)可以减少临时变量,但是有时候你发现无法拆解时,就要用到此方法做法:1.建立一个新类,根据要处理的函数的功能命名2.如果有用到源对象中的函数,就要建立一个final字段,类型为源对象3.把源函数中的临时变量,变为类的变量,建立构造函数,把源函数的临时变量传递进来4.建立一个compute()函数5.把源函数的内容拷贝到compute()函数中,如果有用到源函数中的其他函数调用,请使用第2步创建的源对象来调用6.将旧函数的调用改为:创建一个新类对象, 阅读全文

posted @ 2012-07-28 13:33 低调点 阅读(699) 评论(0) 推荐(0)

重构研究:Extract Method(提炼函数)
摘要:动机:如果看到一个过长的函数或者函数中有一段代码需要注释时,就需要用Extract Method。Extract Method完后的好处:第一,函数的粒度变得很小,这样被复用的机会就更大;第二,使用调用函数读起来像是看一系列的注释一样;第三,如果函数的粒度很小,那这样修改就会变得更容易。注意事项,提炼出来的函数名称一定要能表达这个函数的功能,即这是“做什么的”,这样让调用函数的人可以一目了然。做法:本处采用Eclipse自动提炼工具选中要提炼的代码块,右键“Refactor” -> “Extract Method”,弹出如下窗口在“Method name”处写入新的函数名,按“OK”,生 阅读全文

posted @ 2012-07-28 11:43 低调点 阅读(398) 评论(0) 推荐(0)

重构研究:Remove Assignments to Parameters(移除对参数的赋值)
摘要:动机:举一个JAVA的按值传递参数形式: 1 public static void triple(int arg) { 2 arg = arg + 3; 3 System.out.println("arg in triple:" + arg); 4 } 5 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 int x = 5; 9 triple(x);10 Sy... 阅读全文

posted @ 2012-07-27 08:04 低调点 阅读(603) 评论(0) 推荐(0)

导航