最近比较忙,偷闲整理下第六章的内容,关于重新组织函数的内容。
1. 提炼函数
比较简单但又很常用的手法,目的是把一段逻辑上紧密联系构成相对独立功能块的代码封装起来,通过函数名字清晰的表达其用途,这样潜在的提供了其他模块复用该函数的概率,同时也更加易于维护,因为原来嵌在一大段逻辑中的代码被抽离出来了,对其修改不必在去关系大范围的影响。实施这个重构手法时要注意涉及的上下文变量,可以通过参数,返回值,甚至是添加成员变量的形式进行转化。
2. 内敛函数(inline)
实际上是第一条的逆向,即将过于简单的函数消除掉,通过函数本身就可以清楚的表达函数的意思,这样可以消除不必要的间接性。一个例子是当函数中有调用函数,而调用者又没有做其他操作,只是单纯的调用,例如:
void A()
{
B()
}
void B()
{
C()
}
完全可以把C展开,B也展开,直接写成:
void A()
{
.