导航

重构笔记(一) —— 什么情况下重构

Posted on 2010-02-09 21:58  孤舟客  阅读(261)  评论(0)    收藏  举报

    If it stinks,change it.(如果尿布湿了,就换掉它)      ———— Martin Flower

 

    Martin Flower 把需要重构的代码用“坏味道”来描述,常见的坏味道有以下几种情况:

    1)重复的代码(Duplicated Code)。程序中首当其冲的“坏味道”就是重复代码。

    2)过长的函数(Long Method)。函数逾长逾难理解,写小函数可以使代码变得更清晰。

    3)  过大类(Large Class)。一个类里有太多的方法,他们的功能并不单一,不符合单一职责原则,需要将累分解为更小的类。

    4)过长参数列表(Long Parameter List)。太长的参数列表难以理解,会造成前后不一致难以阅读。

    5)过多的注释(Too Many Comments)。尽可能的用函数名来说明代码的含义。

    6)Switch语句(Switch Statement)。面向对象的最明显的特征是少用Switch语句。其问题原因在于重复。可以用多态来解决此问题。

    7)数据依赖(Data Dependency)。某个函数从另个对象那里取了很多数据,应该把这个函数搬移到那些数据所在的类。

    8)过度耦合的消息链(Message Chains)。一个对象访问另外一个对象的属性,然后另外一个对象又访问另外一个对象的属性,形成一个长长的属性访问链。