其他分享
首页 > 其他分享> > 《重构》读书笔记

《重构》读书笔记

作者:互联网

代码的坏味道

同一个类的两个函数有相同的表达式   两个互为兄弟的子类内含相同的表达式 ==> 提解到超类中去   两个毫不相关的类出现重复代码 ==> 放到第三个类,用一个静态方法,或者放入其中一个类,另一个类调用它即可,看具体详情

 

每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)来命名。   如果函数内有大量的参数和临时变量,他们会对你的函数提炼形成阻碍。传递临时变量给新函数,导致可读性是非常的差的。此时你可以 把临时变量放到子函数中去,最终需要的变量,return回来即可   条件表达式和循环也是提炼的信号。 都可以提炼到一个独立函数中,并且以良好的命名来说明用途

 

如果单个类做的事情太多,类内有太多的代码,也是代码重复,混乱并最终走向死亡的源头。   按照职责拆分类。比如,先确定客户端如何使用他们,然后清除了解这个类,在进行分解

 

太长的参数会造成前后不一致,不易使用,而且难以理解   此时,你需要把过长的参数封装到一个对象中去,这样就十分的方便了   此对象一般叫做VO,或者xxxxRequest 看个人

 

重新组织函数

如果一个函数非常的长,那么把其中逻辑一样的部分提炼出来。比如 一个简单的循环打印并且计算sum的函数   printTest(); int res = getRes();   但对于有临时变量的,这个是特别的注意。传参,还有返回值,这十分的谨慎琢磨。

 

你可以用这项重构将每个条件子句提炼出来,以一个良好的命名的临时变量来解释对应条件子句的意义   总感觉可用可不用

 

代码对一个参数(传进一个函数的参数)赋值,是非常不友好的做法。   所以请以一个临时变量取代该参数的位置

 

如果一个函数之中局部变量泛滥成灾,那么想分解这个函数是非常困难的,有时你会发现根本无法拆解一个需要拆解的函数。这种情况,你就需要函数对象这件法宝了。   将这个函数变为对象,函数的局部变量变为函数对象的字段。在新类里面建立一个 compute 的函数,然后使用分解函数进行重构即可

 

重新组织数据

比如:一开始你可能会用一个字符串来表示 “电话号码” 的概念,但是随后你就会发现,电话号码需要 “格式化”, “抽取区号” 之类的特殊行为。   对这个 “电话号码” 你有很多的操作,这是非常不友好的。   所以必要时,将 String phone ==> Phone phone 一个对象

 

 

 

标签:重构,函数,读书笔记,一个,提炼,参数,Method,变量
来源: https://www.cnblogs.com/wenbochang/p/14491042.html