登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

樱之花

叶散的时候,你明白欢聚;花谢的时候,你明白青春.

 
 
 

日志

 
 
关于我

分类中“我的实验室”是我在日常工作中的一些知识总结,有些写的比较匆忙,可能大家在阅读时会产生困扰,后期有时间我会重新整理编辑,谢谢大家的到访,您们的支持是我前进的动力!

代码重构-代码的坏味道  

2012-03-04 12:26:52|  分类: 代码重构 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1. 重复代码。
  相关class具有相同代码: 抽出代码,放入基类中。
  无关class具有相同代码:抽出代码,放入一个独立class或函数中。 

2. 过长的函数

  动则上千行的函数,我的确见过很多,工作中这样的代码一点也不稀罕。
 找出函数中逻辑和意义比较紧凑的部分,抽出来成为一个新的小函数,把局部变量作为参数或返回值。
  往往需要对参数列表再次进行重构,如Replace Temp with query, Introduce Parameter等具体方法操作。 

3. 过长参数。
   6-7个参数就应当考虑传入一个结构体了。 

4. 发散式变化。
   如果需要增加一个新功能需要修改一些函数,如果需要增加另一个新功能需要修改另外几个函数,表明class在不同的方向上发生了变化了。
  这个时候应当把相应的变化提炼到一个新的类中,使得增加的新功能只会改变这个单一的类。 

5. 游击战的修改。
 如果你要做出某种改变,你需要在不同的class内作出小修改,这个时候应当move method或move field将需修改的代码放到同一class中去。这种情况类似于发散式变化的情况。 

6. 移情别恋
   数据和加诸其上的操作行为封装在一起形成类。如果某些函数对于别人的class的兴趣高过自己class时,应当分手了。让他走吧,把他移到他所感兴趣的类中去。
    这个往往可以通过看函数所用到的数据属于哪个类的更多。

  评论这张
 
阅读(492)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018