• 代码的坏味道【1】



     返回总目录


    一、Duplicated Code(重复代码)

    我们写代码的时候应该遵循DRY原则:Don't Repeat Yourself。如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将他们合而为一,程序会变得更好。

    1、同一个类的两个函数含有相同的表达式

    这时候你要做的就是将重复的代码提炼到一个单独的函数中,然后让这两个函数去调用它。

    2、两个互为兄弟的子类含有相同的表达式

    要避免这种情况,只需要将两个类的重复的代码提炼出来,然后再将提炼出来的代码推入基类中。

    3、不相干类含有相同代码

    你应该将重复的代码提炼到一个独立类中,然后在两个类中调用这个新类。

    相同表达式只在一个类的一个方法出现,供其他方法调用

    二、Long Method(过长函数)

    函数的第一规则是要短小,第二规则是还要更短小。这个断言无法被证明。也没有研究结果表明小函数更好。

    但是,通常拥有短函数的对象会活得比较好、比较长。

    函数到底该多长?我们来看看《代码整洁之道》的作者的一段话:

    我们似乎有点偏离话题。好吧,那我们来说说,在长函数中该如何提炼?

    1、寻找注释

    如果代码前方有一行注释,可以将这段代码替换成一个函数,而且可以在注释的基础上给这个函数命名。

    2、条件表达式和循环

    可以将这两个分别提炼到独立的函数中

    每个方法只做一件事,方法要定义完善、命名准确

     三、Large Class(过大的类)

    1、一个类中有太多实例变量

    如果想利用单个类做太多的事情,其内部往往就会出现太多的实例变量。一旦如此,重复代码就接踵而至了。

    可以将几个变量一起提炼至新类内。提炼时应该选择类内彼此相关的变量,将他们放在一起。通常如果类内的数个变量有着相同的前缀或字尾,这就意味着有机会把他们提炼到某个组件内。

    2、一个类中有太多代码

    某些字段和方法只被某些实例用到,那就将这些字段和方法移到子类中。

    每个类负责一组具有内在的相互关联的任务

     To Be Continued...

    本次分享到此结束。如果这篇文章对你有帮助的话,评论或推荐下吧!

    作者:NaYoung
    出处:http://www.cnblogs.com/liuyoung/p/7819969.html 
    欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言
  • 相关阅读:
    分解质因数
    大素数测试和分解质因数
    快速幂
    欧拉函数
    素数
    gcd,lcm,ext_gcd,inv
    凸包问题 poj 2187
    map的 简单用法
    判断线段是否在园内
    2-sat 问题
  • 原文地址:https://www.cnblogs.com/liuyoung/p/7819969.html
Copyright © 2020-2023  润新知