ivaneeo's blog

自由的力量,自由的生活。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
作法(Mechanics)
    • 创造一个新函数,根据这个函数的意图来给它命名(以它[做什么]来命名,而不是以它[怎么做]命名)。 --》即使你想要提炼(extract)的代码非常简单,例如只是一条消息或一个函数调用,只要新函数的名称能够以更好方式昭示代码意图,你也应该提炼 它。但如果你想不出一个更有意义的名称,就别动。
    • 将提炼出的代码从源函数(source)拷贝到新建的目标函数(target)中。
    • 仔细检查提炼出的代码,看看其中是否引用了[作用域(scope)限于源函数]的变量(包括局部变量和源函数参数)。
    • 检查是否有[仅用于被提炼码]的临时变量(temporary variables)。如果有,在目标函数中将它们声明为临时变量。
    • 检查被提炼码,看看是否有任何局部变量(local-scope variables)的值被它改变。如果一个临时变量值被修改了,看看是否可以被提炼码处理为一个查询(query),并将结果赋值给相关变量。如果很难 这样做,或如果被修改的变量不止一个,你就不能仅仅将这段代码原封不动地提炼出来。你可能需要先使用Split Temporary Variable(128),然后再尝试提炼。也可以使用Replace Temp with Query(120)将临时变量消灭掉。
    • 将被提炼码中需要读取的局部变量,当作参数传给目标函数。
    • 处理完所有局部变量之后,进行编译。
    • 在源函数中,将被提炼码替换为[对目标函数的调用]。--》如果你将任何临时变量移到目标函数中,请检查它们原本的声明式是否在被提炼码的外围。如果是,现在你可以删除这些声明式了。
    • 编译,测试。
posted on 2005-08-24 11:04 ivaneeo 阅读(149) 评论(0)  编辑  收藏 所属分类: refactoring-从地狱中重生

只有注册用户登录后才能发表评论。


网站导航: