分享

1. 代码中的坏味道

 黎可图书馆 2013-10-14
1. 重复代码
(1) “同一个类的两个函数含有相同的表达式。”这时提炼出重复的代码,然后两个地方同时调用提炼出来的那一段代码。
(2)“ 两个互为兄弟的子类内含有相同的表达式。”这时将代码提炼出来放入超类中。如果两个子类的代码并不是完全相同,那么考虑使用模板模式。
(3) “两个毫不相关的类出现重复代码。”这时将重复代码提炼到一个单独的类中。

2. 过长函数
每当感觉需要以注释来说明的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名。

3. 过大的类
通常如果类内的数个变量有着相同的前缀或字尾,这意味着有机会把它们提炼到某个组件内。

4. 过长参数类

5. 发散式变化
针对某一外界变化的所有相应修改,都只应该发生在单一类中,而这个新类的所有内容都应该反应此变化。

6. 散弹式修改
把所有需要修改的代码放进同一个类,如果这个类不存在,就创建一个。

7. 依恋情节
函数对某个类的兴趣高过对自己所处类的兴趣。这时应该讲这个方法放至另一个类中。

8. 数据泥团
找出相同的字段并提炼至一个独立的对象中。
一个好的评判方法是:删掉众多数据项中的一项,这么做其他数据有没有因而失去意义?如果他们不再有意义,这就是个明确的信号:你应该为他们产生一个新对象。

9. 基本类型偏执
用类替代有关系的基本类型。

10. switch惊悚现身
尽量避免使用switch

11. 平行继承关系
在这种情况下,每当你为某个类增加一个子类,必须也为另一个类相应增加一个子类。
消除这种重复性的一般做法是:让一个继承体系的实例引用另一个继承体系的实例。

12. 冗余类
如果一个类所得不值其身价,那么它就应该被删除。

13. 夸夸其谈未来性
如果所有装置都会被用到,就值得这么做,如果用不到,就删除。

14. 令人迷惑的暂时字段
如果临时字段过多,将他们放入一个类中,并在需要的地方引用这个对象。

15. 过度耦合的消息链
如果你看到用户向一个对象请求另一个对象,然后再向后者请求另一个对象,然后再请求另一个对象。。。这就是消息链。

16. 中间人
如果一个类接口中有许多的函数都是委托给其他类,那么就是过度运用。应减少这种情况。

17. 亲昵关系
要避免类之间过分亲密。

18. 异曲同工的类
如果两个函数在做同一件事,却有着不同的签名,这就需要改正。

19. 不完美的库类

20. 纯稚的数据类
是指:它们拥有一些字段,以及用于访问这些字段的函数,如此之外什么都没有。

21. 被拒绝的遗赠

22. 过多的注释
如果你感觉需要撰写注释时,请先尝试重构,试着让注释变得多余。

23. 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多