重构 - 组合方法 -- 提取方法

提取方法:

当你有一段可以被组织起来的代码片段。

将这段代码放进一个本身的名字就可以很好的解释方法用途的方法里。

 

void printOwing(double amount) {
    printBanner();
 
    //print details
    System.out.println ("name:" + _name);
    System.out.println ("amount" + amount);
}

||

\/

 

void printOwing(double amount) {
    printBanner();
    printDetails(amount);
}
 
void printDetails (double amount) {
    System.out.println ("name:" + _name);
    System.out.println ("amount" + amount);
}

 

目的:

 

提取方法是我最常用的重构之一。 我研究那些太长或者需要注释才能被理解的代码。 然后我把那种代码片段变成一个方法。

 

有多个原因使我倾向于简短,良好命名的方法。首先, 当方法的力粒度很小的时候就增加了它被其他方法重用的机会。 其次,它使得阅读更高级的方法就像在阅读一系列的注释一样。 当方法的粒度很小的时候, 重写也变的更容易。

 

It does take a little getting used to if you are used to seeing larger methods. And small methods really work only when you have good names, so you need to pay attention to naming. People sometimes ask me what length I look for in a method. To me length is not the issue. The key is the semantic distance between the method name and the method body. If extracting improves clarity, do it, even if the name is longer than the code you have extracted.

你确实需要一点时间去习惯如果你习惯于见到大方法。小方法只有在良好命名的情况下才起作用,所以你需要注意方法的命名。人们有时候会问我方法应该要多长。 对于我来说长度不是一个问题。关键是方法名和方法体之间的语义距离。如果提取能够使得方法更清晰, 提取它, 哪怕在提取之后方法名比方法体还要长。

 

过程:

 

 

  • 新建一个方法, 按照方法的目的进行命名(根据它做什么来命名, 而不是它如何工作)。
    如果有想要提取的代码非常简单, 比如一个简单的消息或者功能调用,如果新的方法可以更好地展现代码的意 图你也应该提取这个方法。 如果你不能够找出一个更有意义的名字, 那就不要提取代码
  • 从原方法中复制提取的代码到心的方法中。

....................

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值