步步为营 .NET 代码重构学习笔记系列总结
历时一个多月的时间,代码重构系列终于写完了,代码的坏味道大家一看都不会陌生,绝对是在我们的编程中如影随形的,现在把相应的重构方法和设计模式总结出来,以供大家参考.因为不论是重构还是应用设计模式,一切的目的都是为了软件构架的“优雅”,而不是炫耀技术。
步步为营 .NET 代码重构学习笔记系列
步步为营 .NET 代码重构学习笔记 一、为何要代码重构
步步为营 .NET 代码
http://www.cyqdata.cn/cnblogs/article-detail-39417
步步为营 .NET 代码重构学习笔记 十四
一、Form Templlate Method(塑造模板函数) 动机(Motivation) 有一些subclasses,其中相应的某些函数以相同顺序执行类似的措施,但各措施实际上有所不同。将各个措施分别放进独立函数中,并保持它们都有相同的签名式(signature),于是原函数也就变得相同了。然后将原函数上移至baseclass。 示例 public abstract class Site
http://www.cyqdata.cn/cnblogs/article-detail-39382
步步为营 .NET 代码重构学习笔记 十三
一、Replace Exception with Test(以测试取代异常) 动机(Motivation) 面对一个[调用者可预先加以检查]的条件,你抛出了一个异常。修改调用者,使它在调用函数之前先做检查。 示例 private Dictionary<int, string> _values;
public double GetValueFor
http://www.cyqdata.cn/cnblogs/article-detail-39304
步步为营 .NET 代码重构学习笔记 十二
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代
http://www.cyqdata.cn/cnblogs/article-detail-38960
步步为营 .NET 代码重构学习 十一
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习
http://www.cyqdata.cn/cnblogs/article-detail-38908
步步为营 .NET 代码重构学习笔记 十
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习
http://www.cyqdata.cn/cnblogs/article-detail-38820
步步为营 .NET 代码重构学习笔记 九
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习
http://www.cyqdata.cn/cnblogs/article-detail-38684
步步为营 .NET 代码重构学习笔记 七
一、Introduce Foreign Method(引入外加函数) 动机(Motivation) 在client class 中建立一个函数,并以一个server class实体作为第一引数(argument)。 示例 DateTime newStart = DateTime.Now.AddDays(1);
改为
public Date
http://www.cyqdata.cn/cnblogs/article-detail-38600
步步为营 .NET 代码重构学习笔记 五、移动函数和移动值域(Move Method And Move Field)
Move Method 概述 程序中,有个函数与其所驻class之外的另一个class进行更多交流,调用后者或被后者调用 动机(Motivation) 如果一个class有太多行为,或如果一个class与另一个class有太多合作而形成高度耦合(highly coupled),我们就会搬移函数。通过这种手段,我们可以使系统中的classes更简单,这些classes最终也将更干净利落地实现
http://www.cyqdata.cn/cnblogs/article-detail-37996
步步为营 .NET 代码重构学习笔记 四、分解函数和替换算法(Replace Method And Substitute Algorithm)
Replace Method with Method Object 概述 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field),然后你可以在同一个对象中将这个大型函数分解为数个小型函数. 动机(Motivation) 小型函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大在提高代码的可读性. 示例 public int Gamma(
http://www.cyqdata.cn/cnblogs/article-detail-37994
步步为营 .NET 代码重构学习笔记 三、临时变量(Temporary Variable)
Split Temporary Variable(剖解临时变量) 概述 程序中有某个临时变量被赋值超过一次,它既不是循环变量,也不是一个集用临时变量(collecting temporary variable) 动机(Motivation) 临时变量有各种不同用途,其中某些用途会很自然地导至临时变量被多次赋值.(循环变量)和(集用临时变量)就是两个典型例子:循环变量(loop variab
http://www.cyqdata.cn/cnblogs/article-detail-37535
步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method)
动机(Motivation) Extract Method是我们最常用的重构手法之一.当我们看见一个过长的函数或一段需要注释才能让人理解用途的代码,我们就会将这段代码放进一个独立函数中. 有数个原因造成我们喜欢简短而有良好命名的函数.首先,如果每个函数的粒度都很小(finely grained),那么函数之间彼此复用的机会就更大;其次,这会使高层函数代码读起来就像一系列注释;再者,如果函数都是
http://www.cyqdata.cn/cnblogs/article-detail-37420
步步为营 .NET 代码重构学习笔记 一、为何要代码重构
最近在学习代码重构,根据自己的学习进度写一个关于代码重构的系列出来,供自己总结提高,也希望能对他人有所帮助。园子里有圣殿骑士的31 天重构学习笔记 给了我很多的启发,自己也在学习《Refactoring improving the Designe of Existing Code》(重构 改善既有代码的设计),希望在代码重构思想上能有自己的心得. 一、为什么要重构(Re
http://www.cyqdata.cn/cnblogs/article-detail-37248