重构---代码的坏味道

来源:互联网 发布:大数据公司 征信公司 编辑:程序博客网 时间:2024/04/28 12:45
  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 statement( switch 惊悚现身) switch的问题在于重复,它常散布在代码的多处地方。 书中说简单的可以通过提取一个函数,封装switch, 这个常见的一种办法, 但是提到使用多态的解决?!   用多态以前的确没有想过,提取共同的接口,在子类中实现差异逻辑。 
  11. Parallel Inheritance Hierachies (平行继承)
  12. Lazy Class (冗余类), 多余的类
  13. Speculative Generality( 夸夸其谈未来性) 过度考虑扩展,多余的抽象设计,更难理解与维护
  14. Temporary Field (令人迷惑的临时字段)
  15. Message Chains (过度耦合的消息链)
  16. Middle Man(中间人)--- 过度使用委托
  17. Inappropriate intimacy(狎昵关系) 两个类关联紧密, 逻辑定位不清晰。
  18. 异曲同工的类
  19. Incomplete Library Class (不完美的类库)  使用当类库不支持某功能时,使用Static函数,扩散类库的功能。 或者Introduce Local Extension(引入本地扩展) 当类库不支持多某功能时,继承它,子类扩展。
  20. Data Class (纯稚的数据类)
  21. Refused Bequest(被拒绝的遗赠) 超类中不希望实现的超类接口,  将接口的实现下移。
  22. Comments(过多的注释)  没有同步被更新的注释, 引起歧义。


0 0
原创粉丝点击