代码中坏味道和对应重构方法——摘自《重构,改善既有代码的设计》

本文介绍了代码中常见的坏味道,如重复代码、过长函数、过大的类、过长参数列、发散式变化等,并给出了相应的重构方法,如提炼函数、提炼类、以对象取代数据值等,旨在提升代码质量。
摘要由CSDN通过智能技术生成

坏味道1 :重复代码

重构方法:

1)       Extract Method (提炼函数): 你有一段代码可以被组织在一起并独立出来。 将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。

2)       Extract Class (提炼类):某个类做了应该由两个类做的事。建立一个新类, 将相关的字段和函数从旧类搬移到新类。

3)       Pull Up Method (函数上移):有些函数, 在各个子类中产生完全相同的结果。 将该函数移至超类。

4)       Form Template Method(塑造模板函数):你有一些子类, 其中相应的某些函数以相同的顺序执行类似的操作,但各个操作的细节上有所不同。 将这些操作分别放      进独立函数中, 并保持他们都有相同的签名,于是原函数也就变得相同了。 然后将原函数上移至超类。

坏味道2:过长函数

重构方法:

1)       Extract Method (提炼函数): 你有一段代码可以被组织在一起并独立出来。 将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。

2)       Replace Temp with Query (以查询取代临时变量): 你的程序以一个临时变量保存某一表达式的运算结果。将这个表达式提炼到一个独立函数中。 将这个临时变        量的所有引用点替换为对新函数的调用。 此后,新函数就可被其他函数使用。

3)       Replace Method with Method Object(以函数对象取代函数): 你有一个大型函数, 其中对局部变量的使用使你无法采用提炼函数的方法。 将这个函数放进一个单    独的对象中, 如此一来局部变量就成了对象内的字段。然后你可以在同一个对象中将这个大型函数分解为多个小型函数。

4)       Decompose Conditional(分解条件表达式): 你有一个复杂的条件(if-then-else)语句。 从 if、 then、 else 三个段落中分别提炼出独立函数。

坏味道3: 过大的类

重构方法:

1)       Extract Class (提炼类):某个类做了应该由两个类做的事。建立一个新类, 将相关的字段和函数从旧类搬移到新类。

2)       Extract Subclass (提炼子类): 类中的某些特性只被某些(而非全部)实例用到。新建一个子类, 将上面所说的那一部分特性移到子类中。

3)       Extract Interface (提炼接口): 若干客户使用类接口中的同一子集, 或者两个类的接口有部分相同。将相同的子集提炼到一个独立接口中。

4)       Replace Data Value with Object (以对象取代数据值): 你有一个数据项,需要与其他数据和行为一起使用才有意义。将数据项变成类。

坏味道4: 过长参数列

重构方法:

1)       Replace Parameter with Method(以函数取代参数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值