烟熏鲱鱼(臭臭)
指那些已经被添加了太多属性或者方法的,难以维护的的函数或类。通常这种情况不是突然出现的,而是随着代码进化而不断积累,特别是在没有人专门维护代码的时候。
数据重复
症状
在代码的不同地方出现包含相同变量的代码(比如,数据库连接参数)。这些数据应该通过 class 进行封装。
原因
出现数据重复,通常是因为差劲的代码结构,或者“复制粘贴型开发”导致的。
如果你想确定代码中的某些数据是否有用,最简单的办法就是删除它们,然后看看程序是否能正常工作。如果不能,那就意味着你该重构代码了。
解决办法
当一个类干了两个类的活儿的时候:
![](https://sourcemaking.com/images/refactoring/Extract%20Class%20-%20Before.png)
应该考虑创建一个新 class 将相关的属性及方法拆分出去
![](https://sourcemaking.com/images/refactoring/Extract%20Class%20-%20After.png)
多个方法接受相同的一组参数
![image](https://sourcemaking.com/images/refactoring/Introduce%20Parameter%20Object%20-%20Before.png)
使用这些参数构建新的对象
![image](https://sourcemaking.com/images/refactoring/Introduce%20Parameter%20Object%20-%20After.png)
多个方法接受相同的一组参数
![image](https://sourcemaking.com/images/refactoring/Introduce%20Parameter%20Object%20-%20Before.png)
使用这些参数构建新的对象
![image](https://sourcemaking.com/images/refactoring/Introduce%20Parameter%20Object%20-%20After.png)
收益
- 改善代码结构,从而使它更容易理解。对特定数据的修改集中到了一个地方,而不是杂乱的分散于代码各处。
- 缩减代码量
网友评论