摘要: 在博客园上看见一个广告感觉很有意思哈哈,看见右侧的广告了吗?我记得google的广告算法是根据当前页面的关键字自动匹配合适的广告,看来搞IT的果然是民工呀纯属娱乐,如有雷同,概不负责 阅读全文
posted @ 2010-01-03 23:28 双击 阅读(366) 评论(0) 推荐(2) 编辑
摘要: 这一条重构的建议是尽量提取方法,使得代码更加清晰明了旧的代码:[代码]为了弄明白CalculateGrandTotal() 这个方法的意思你会把代码整个看一遍,从而知道是做了3件事情1,计算总额2,计算优惠折扣3,添加消费税相比较而言我们可以作如下重构[代码]将三件事情分成三个子方法,这样每个方法可以专司其职,使得代码更具有可读性这是一个很重要的重构方法,方法尽量不要超过100行,因为越长的方法越... 阅读全文
posted @ 2010-01-03 22:53 双击 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 这个重构方法其实就是说把类的接口抽取出来,参数传递的时候以接口而不是具体的类个人理解这就是面向接口的编程思想吧,有哪位达人知道的请告知一下例子很简单,旧代码:[代码]重构后的代码:[代码]我们将ClassRegistration 类的两个方法Create() ,Transfer() 抽取出来创建成IClassRegistration接口在ProcessRegistration这个方法中就可以不依赖... 阅读全文
posted @ 2010-01-03 22:42 双击 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 之前有说过尽量少用继承 这个方法就是讲这个的 旧的代码: [代码]重构后的代码:[代码]在这个例子中,Child并不是Sanitation(is - a),两者没有很强烈的关系,所以不应该强行用继承这里的委托不是.net里的关键字delegate,应该是说把非关本类的方法交给其他类来出来,委托他人完成这里的委托两个字来自:31 Days of Refactoring Refactoring Da... 阅读全文
posted @ 2010-01-03 22:31 双击 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 其实这一条很好理解,就是对类名,变量名,参数名,方法名乱写,这样很容易搞错 比方说起一些名字叫a1,a2就比较难以理解 应该起一些更加具有描述性,更助于理解的名字 示例代码: 旧代码 [代码]重构后的代码:[代码] 阅读全文
posted @ 2010-01-03 21:48 双击 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 和第4天的下移方法一样,只不过是方法变成了字段 阅读全文
posted @ 2010-01-03 21:35 双击 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 和第3天的上移方法一样,只不过方法换成了字段而已 阅读全文
posted @ 2010-01-03 21:34 双击 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 和第3天的上移方法相反,下移方法就是说,如果一个方法在包含在基类中,如果子类只有一个会使用到这个方法,那么就应该移动到子类中 代码很简单,就不粘贴了 阅读全文
posted @ 2010-01-03 21:32 双击 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 这个方法的意思就是说如果有两个类使用同一方法,可以用一个基类完成 从而改善代码, 旧的代码如下 [代码]新的代码:[代码]其实也就是说用继承的方法把公共的方法抽离出来,实现复用不过继承容易出一些问题,所以要特别注意,尽量用包含的形式 阅读全文
posted @ 2010-01-03 20:56 双击 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 我觉得这个其实没什么就是说把某些方法移动到常用的类里面去这个应该在我们写程序的时候潜意识里面就会做到的例子如下 错误的代码:[代码]正确的代码应该是:public class BankAccount { public BankAccount(int accountAge, int creditScore,AccountInterest accountInterest) { AccountAge ... 阅读全文
posted @ 2010-01-03 20:28 双击 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 对集合进行封装,只把需要的接口暴露给外部使用者,例如AddStudent,RemoveStudent 以及属性Count 而不是把整个集合暴露出来让外部使用者去操作 [代码] 阅读全文
posted @ 2010-01-03 20:22 双击 阅读(182) 评论(0) 推荐(0) 编辑