Refactoring to Patterns 读书笔记(五)

本文介绍ComposedMethod模式,强调方法内部代码的统一性,并通过重构提高代码可读性。提炼核心逻辑,创建清晰的小方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用 Composed Method 模式

  这大概是最简单的模式之一了,甚至可能有人会觉得如此简单的咚咚居然被成为“模式”是非常可笑的。不过,Kent Beck 曾说过:“some of his best patterns are those that he thought someone would laugh at him for writing.”Kent 就是在他的 Smalltalk Best Practice Patterns 一书提出这个模式:Composed Method。


  良好的 Composed Method 的特征是,在方法体中,所有的代码段都处于同样的细节级别之上。比如说上图中上半部分所展示的代码,最内层 if 结构中的代码表达的是如何扩展该类使用的存储结构,而倒数第三句表达的是添加一个元素。也就是说前者是关于该类内部细节的,而后者是关于该类外部行为的。 重构之后的代码,则显得干净漂亮很多,三段代码都处于同样的细节级别之上,而命名良好的小方法也更容易让人理解这段代码的含义。

  在重构为 Composed Method 模式的过程中,常常会多次反复应用 Extract Method 过程,直到目标 Composed Method 中大部分(并非所有)工作都是通过调用其他方法完成的。如果抽取了太多的代码放到一个方法中,那么有可能会使得你找不到一个合适的名字来命名这个新的方法。在这种情况下,就需要应用 Inline Method 过程将这些代码放回原来的方法中去,再想想别的办法将之解构。

  如果在这项重构的过程中,在同一个类里面产生了大量由 Composed Method 调用的私有小方法,那么就可能需要应用 Extract Class 过程进一步进行重构。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值