代码坏味道(总结)

清泛原创
1.Duplicated Code(重复代码 重复出现相同或相似的代码,需抽取共通,便于维护。
2.Long Method(过长函数) 函数体尽量简短,内聚性要变强。
3.Large Class(过大的类) 类不可太大,不可做太多的事情,应将与该类关联不大或不相关的事情交与其他类或函数处理。
4.Long Parameter List(过长的参数列) 函数的参数列表不宜过长,应该只传递需要的数据。
5.Divergent Change(发散式变化) 某个类经常因为不同的原因在不同的方向上发生变化。
6.Shotgun Surgery(散弹式修改) 针对某一外界变化需要相应改动多个地方。
7.Feature Envy(依恋情结) 一个类中函数过多操作其他类中数据。
8.Data Clumps(数据泥团) 相同的数据多次一起出现,这时应该提取数据结构。
9.Primitive Obsession(基本类型偏执) 使用过多的基本数据类型,这时应该提取数据结构。
10.Switch Statements(switch惊悚现身) 不要过多使用switch,可以考虑用多态代替。
11.Parallel Inheritance Hierarchies(平行继承体系) 为一个类增加子类同时也需要为另一个类增加子类,这时可以将一个类委托给另一个类。
12.Lazy Class(冗赘类) 没有用到的多余的类。
13.Speculative Generality(夸夸其谈未来性) 过多的考虑将来的拓展,有时往往造成更坏的结果。用不上的东西抛弃掉。
14.Temporary Field(令人迷惑的暂时字段) 使用了让人很难理解的临时变量。
15.Message Chains(过度耦合的消息链) 消息(或调用关系)过于迂回,多次嵌套调用。向调用者隐藏委托,直接提供最终的调用。
  a.getB().getC().getName(); -> a.getCName(); … b.getCName(); … c.getName();
16.Middle Man(中间人) 一个类过多的将操作委托给其他类。应去掉委托类。
17.Inapproprite Intimacy(狎昵关系) 两个类过度访问对方私有成员。共通部分提取新类。
18.Alternative Classes with Different Interfaces(异曲同工的类) 两个不同的函数/类做同一事情。
19.Incomplete Library Class(不完美的类库) 既存的类库无法满足要求,但又不能修改类库。
20.Data Class(纯稚的数据类) 类中只有单纯的成员及getter、setter函数。
21.Refused Bequest(被拒绝的馈赠) 子类只需要用到父类的部分方法。
22.Comments(过多的注释) 大段的注释。提取函数。

代码 坏味道

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部