
重构
文章平均质量分 85
virtualxmars
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《重构》C#版实现(一)构建参考结果的测试用例
首先,列出的是第一个“电影租赁”案例的C#版初始代码: using System; using System.Collections.Generic; namespace CH01_MovieRentalHouse { public class Movie { public const int CHILDRENS = 2; public co原创 2012-07-11 22:07:05 · 1092 阅读 · 0 评论 -
《重构》C#版实现(二)抽取AmountFor方法
上一篇讲了如何使用原始(待重构的)代码构建自动单元测试,以保障后面重构的进行。如果你跟着一步一步地做,会发现,自动测试绝对是重构过程必不可少的工具。那么现在开始真刀真枪地进行重构。 等等,在开始前的最后一刻,还需要提醒的是,也许你带着满腔热情,想把代码重构得优雅极致,但就像平时的工作一样,重构的过程更需要的是理性思考,而不是冲动。每一次重构实践,都应该包含了对设计、实现、可维护、可扩展性,以及成原创 2012-07-12 12:06:39 · 1117 阅读 · 0 评论 -
《重构》C#版实现(三)Statement的整体重构
上一篇使用了Extract Method技巧,从Statement方法中分离出了AmountFor方法,从而略微提高了Statement方法的可读性,下面我们继续跟着《重构》的脚步来进行剩余的重构。当然在继续之前,我还是会提醒你,每一步重构之后,记得运行单元测试,它是重构的基石。 一、重命名AmountFor的局部变量 首先看看我们先前抽取出来的AmountFor方法: public d原创 2012-07-12 19:26:12 · 1161 阅读 · 0 评论 -
《重构》C#版实现(四)switch的多态化处理
上一篇主要重构了Statement方法,在大刀阔斧的调整后,总算是得到了一个易于理解的方法体。当然,其中会带来潜在的效率问题,但记住一点,起码所有的事情都是经过权衡和决策的。可以“果断”来形容,而那种不明就里地乱来属于“武断”又或者说是“鲁莽”的行为当然不被推荐,它们的区别也就在于是否有全面的权衡与决策。 首先,列出到现在为止,Movie类和Rental类的代码如下: public cla原创 2012-07-13 14:51:44 · 2980 阅读 · 0 评论