上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 步步为营 .NET 代码重构学习笔记系列步步为营 .NET 代码重构学习笔记 一、为何要代码重构步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method)步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable)步步为营 .NET 代码重构学习笔记 五、分解函数和替换算法(Replace Method And Substitute Algorithm)步步为营 .NET 代码重构学习笔记 六、移动函数和移动值域(Move Method And Move Fie 阅读全文
posted @ 2011-06-01 22:23 spring yang 阅读(1885) 评论(2) 推荐(5) 编辑
摘要: 步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习笔记 五、... 阅读全文
posted @ 2011-05-31 22:56 spring yang 阅读(1918) 评论(0) 推荐(2) 编辑
摘要: 步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构 步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method) 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method) 步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable) 步步为营 .NET 代码重构学习笔记 五、... 阅读全文
posted @ 2011-05-30 23:14 spring yang 阅读(1912) 评论(1) 推荐(2) 编辑
摘要: 一、Introduce Foreign Method(引入外加函数)动机(Motivation)在client class 中建立一个函数,并以一个server class实体作为第一引数(argument)。示例DateTime newStart = DateTime.Now.AddDays(1);改为 public DateTime NextDate() { return DateTime.Now.AddDays(1); }二、Introduce Local Extension(引入本地扩展)动机(Motivation)建立一个新class,使它包含这些额外函数。让这个扩展品成为sourc 阅读全文
posted @ 2011-05-30 00:05 spring yang 阅读(1694) 评论(2) 推荐(2) 编辑
摘要: 一、Extract Class(提炼类)动机(Motivation)一个class应该是一个清楚的抽象(abstract),处理一些明确的责任。但在实际工作中,class会不断成长扩展。这个class会变得过份复杂,很快,class就会变成一团乱麻。示例 public class Person { private string _name; private string _officeAreaCode; private string _officeNumber; public string Name { get { return _name; } set { _name = value; } 阅读全文
posted @ 2011-05-25 23:36 spring yang 阅读(2006) 评论(4) 推荐(1) 编辑
摘要: Move Method概述程序中,有个函数与其所驻class之外的另一个class进行更多交流,调用后者或被后者调用动机(Motivation)如果一个class有太多行为,或如果一个class与另一个class有太多合作而形成高度耦合(highly coupled),我们就会搬移函数。通过这种手段,我们可以使系统中的classes更简单,这些classes最终也将更干净利落地实现系统交付的任务。示例 public class MoveMethod { private AccountType _type; private int _daysOverdrawn; public double Ov 阅读全文
posted @ 2011-05-23 21:55 spring yang 阅读(1947) 评论(0) 推荐(1) 编辑
摘要: Replace Method with Method Object概述将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field),然后你可以在同一个对象中将这个大型函数分解为数个小型函数.动机(Motivation)小型函数优美动人,只要将相对独立的代码从大型函数中提炼出来,就可以大在提高代码的可读性.示例 public int Gamma(int inputValue, int quantity, int yearToDate) { int importantValue1 = inputValue * quantity + DateTime.Now.Minute; int 阅读全文
posted @ 2011-05-23 20:42 spring yang 阅读(2087) 评论(0) 推荐(2) 编辑
摘要: Split Temporary Variable(剖解临时变量)概述程序中有某个临时变量被赋值超过一次,它既不是循环变量,也不是一个集用临时变量(collecting temporary variable)动机(Motivation)临时变量有各种不同用途,其中某些用途会很自然地导至临时变量被多次赋值.(循环变量)和(集用临时变量)就是两个典型例子:循环变量(loop variable)会随循环的每次运行而改变(例如 for(int i=0;i<10;i++))语句中的i);集用临时变量(collecting temporary variable)负责将(通过整个函数的运算)而构成的某个 阅读全文
posted @ 2011-05-18 22:11 spring yang 阅读(2555) 评论(8) 推荐(2) 编辑
摘要: 一、Inline Method 概述 一个函数,其本体(method body)应该与其名称(method name)同样清楚易懂. 动机(Motivation) 以简短的函数表现动作意图,这样会使代码更清晰易读.但有时候你会遇到某些函数.其内部代码和函数名称同样清晰易读.也可能你重构了该函数,使得其内容和其名称变得同样清晰.果真如此,你就应该去掉这个函数,直接使用其中代码,间接可能带来帮助,但非... 阅读全文
posted @ 2011-05-16 21:34 spring yang 阅读(2887) 评论(1) 推荐(4) 编辑
摘要: 动机(Motivation) Extract Method是我们最常用的重构手法之一.当我们看见一个过长的函数或一段需要注释才能让人理解用途的代码,我们就会将这段代码放进一个独立函数中. 有数个原因造成我们喜欢简短而有良好命名的函数.首先,如果每个函数的粒度都很小(finely grained),那么函数之间彼此复用的机会就更大;其次,这会使高层函数代码读起来就像一系列注释;再者,如果函数都是细粒... 阅读全文
posted @ 2011-05-15 23:18 spring yang 阅读(3312) 评论(6) 推荐(2) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页