随笔分类 -  重构

重构36计(6)
摘要:第三十一计:置空不用的对象在C++中,销毁一个对象后,一定要把指针置为NULL,否则会出现野指针,最好写成下面这样,delete后立马置为NULL,delete pObject;pObject = NULL;在Java中,当不再需要一个对象时,最好能把它置为null,这样有利于垃圾回收。第三十二计:善于利用接口 1、回调型接口 在C语言中,回调函数可以通过函数指针来实现,Java中没有指针的概念,可以利用接口来达到同样的目的,例如: public interface Callback{ public void onChanged(); } public void execute... 阅读全文
posted @ 2012-04-23 15:40 West_Link 阅读(2003) 评论(4) 推荐(6)
重构36计(5)
摘要:第二十五计:函数体最多不超过100行记得以前看过一个函数有9000多行,很壮观啊,从那以后看到长函数时也不奇怪了,我认为过长函数的主要缺点是:1、严重影响代码的阅读,使用到某个变量的地方可能间隔几百甚至上千行,如果if-else嵌套层次较多的话那就更噩梦了。2、不利于代码的重用,短小而独立的逻辑处理单元更容易被重用,而过长的代码段则需要经过进一步分解才行。我觉得函数最好不要超过100行,对于过长的函数要尽可能地进行分解,如果实在不能分解,那么就通过注释的方式增加该函数处理步骤的说明,例如:public void foo(){// 1、验证参数、内部状态的有效性...// 2、开始倾斜角度... 阅读全文
posted @ 2012-04-20 11:23 West_Link 阅读(2108) 评论(6) 推荐(4)
重构36计(4)
摘要:第十九计:避免类的臃肿在我接触过的大部分项目中,总会有一个“大胖子“类特别惹眼,一般来说,这“大胖子“实际上是整个系统的核心类之一,之所以“胖“,主要原因是很多人都会把自己需要的函数加到这个类中,却没有人主动请缨来为它“减肥“。可以通过以下几种方式来为它“瘦身”:1、按照某种特性(如功能、类型等)将这个类拆分成多个类。 2、合并冗余函数,保持函数粒度的最小化。 3、去除重复代码。如果实在不能再“瘦”了,那就通过实现相应的接口,让它“看上去很瘦“,举个例子:public class BigBoy{ public void foo1(); public void foo2(); public... 阅读全文
posted @ 2012-04-18 10:25 West_Link 阅读(2273) 评论(2) 推荐(5)
重构36计(3)
摘要:第十三计:为集合类型的成员变量提供增删改查函数对于集合类型的成员变量,直接提供一个函数将其暴露出去是不够妥当的,缺点包括以下几点: 1、添加集合元素时无法校验它的合法性,例如类型是否符合要求、该元素是否已存在等。 2、无法控制集合的容量,集合的容量可能是动态分配的。 所以,更好的做法是为集合类型的成员变量提供增删改查等函数,例如某个类中有名为userList的数组,则可以为它增加几个函数:public void add(User user){ if(user == null) // 如果对象为不合法,则不添加 return; if(userList == null) // 如果集合... 阅读全文
posted @ 2012-04-17 10:19 West_Link 阅读(1995) 评论(2) 推荐(3)
重构36计(2)
摘要:第七计:串联函数调用当一个类的大部分函数被较为频繁地调用,并且包含连续性地调用,那么可以考虑为这个类中那些没有返回值的函数增加返回值,即返回对象本身,这样就可以串联函数调用,使用起来较为方便,举个例子:// 表示用户的类public class User{ public void setName(String name); public void setAge(int age); public void setPhoneNumber(int phoneNumber);}下面是不使用串联函数调用的情况:User user = new User();user.setName("West_ 阅读全文
posted @ 2012-04-16 16:03 West_Link 阅读(2152) 评论(4) 推荐(3)
重构36计(1)
摘要:重构,其实很简单,它的目的就是让程序变得更容易被理解,更具有可维护性,结构更合理。重构应该是我们平时写代码过程中必不可少的一部分,比如给函数起了一个更好的名字、把大函数拆分成几个小函数等都属于重构。重构的经典书籍包括Martin Flower的《重构-改善既有代码的设计》、Joshua Kerievsky的《重构与模式》,本系列的所谓36计是我多年来使用最为频繁的重构策略和编码准则,有自己总结的,也有书上提到过的,希望对大家能有所帮助。第一计:参数列表对象化 公有函数的参数应尽可能保持不变,因为很多地方都会调用它,修改参数后需要修改它的调用处,另外,它的参数列表不宜过长,数量尽量保持在5个以. 阅读全文
posted @ 2012-04-16 09:06 West_Link 阅读(2287) 评论(6) 推荐(7)