代码的坏味道【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
欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言