重构
文章平均质量分 83
treeMountain
精通.NET开发,Web网页的开发
展开
-
《重构--改善既有代码的设计》--重构,第一个案例(1)
重构(refactoring):在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。重构之前,首先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验能力。代码块愈小,代码的功能就愈容易管理,代码的处理和移动也就愈轻松。任何不会原创 2015-06-23 08:46:59 · 399 阅读 · 0 评论 -
《重构--改善既有代码的设计》--大型重构(12)
一、Tease Apart Inheritance(梳理并分解继承体系)某个继承体系同时承担两项责任,建立两个继承体系,并通过委托关系让其中一个可以调用另一个。二、Convert Procedural Design to Objects(将过程化设计转化为对象设计)你手上有一些传统过程化风格的代码。将数据记录变成对象,将大块的行为分成小块,并将行为移入相关对象之中。 三原创 2015-07-31 11:18:55 · 331 阅读 · 0 评论 -
《重构--改善既有代码的设计》--简化条件表达式(9)
一、Decompose Conditional(分解条件表达式)你有一个复杂的条件语句,从if、else段落中分别提炼出独立函数。1、将if段落提炼出来,构成一个函数。2、将else提炼出来,构成一个函数。二、Consolidate Conditional Expression(合并条件表达式)你有一系统条件测试,都者到相同结果。将这些测试合并为一个条件表达式,并将这个条件原创 2015-07-30 09:35:24 · 421 阅读 · 0 评论 -
《重构--改善既有代码的设计》--简化函数调用(10)
一、Rename Method(函数改名)函数的名称未能揭示函数的用途。修改函数名称。1、检查函数签名是否被父类或子类实现过。2、声明一个新函数,将旧函数代码复制到新函数中。3、编译。4、把调用的旧函数改为新函数名称。5、编译、测试。6、删除旧函数。7、编译、测试。二、Add Parameter(添加参数)某个函数需要从调用端得到更多信息。为此函数添加一原创 2015-07-30 11:46:25 · 442 阅读 · 0 评论 -
《重构--改善既有代码的设计》--重新组织数据(8)
一、Self Encapsulate(自封装字段)你直接访问一个字段,但与字段之间的耦合关系逐渐变得笨拙。为这个字段建立取值/设值函数,并且只以这些函数来访问字段。1、为待封装字段建立取值/设值函数。2、找出该字段的所有引用点,将它们全部改为调用取值/设值函数。3、将该字段声明为private。4、复查,确保找出所有引用点。5、编译、测试。class IntRang原创 2015-07-29 09:24:49 · 431 阅读 · 0 评论 -
《重构--改善既有代码的设计》--在对象之间搬移特性(7)
一、Move Method(搬移函数)在A类中有一个A函数与B类中进行更多交流或者被B类调用,可以将A函数变为委托函数,然后移除A函数。做法:1、检查源类中字段与函数,考虑是否被搬移。2、检查源类的子类和父类,看看是否有该函数的其他声明。3、在目标类中声明这个函数。4、将源函数的代码复制到目标函数中。5、编译目标类。6、决定如何从源函数正确引用目标对象。7、修改原创 2015-06-26 08:16:51 · 426 阅读 · 0 评论 -
《重构--改善既有代码的设计》--重新组织函数(6)
1、Extract Method(提炼函数)你有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。When use?过长的函数或者一段注释理解用途的代码,即可独立出来。好处:原创 2015-06-24 11:34:16 · 436 阅读 · 0 评论 -
《重构--改善既有代码的设计》--构筑测试体系(4)
确保所有测试都完全自动化,让它们检查自己的测试结果。一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时间。 频繁地运行测试。每次编译请把测试也考虑进去—每天至少执行每个测试一次。每当你收到bug报告,请先写一个单元测试来暴露bug。测试的要诀是:测试你最担心出错的部分。编写未臻完善的测试并实际运行,好过对完美的无尽等待。、考虑可能出错的边界条件,把测试火力原创 2015-06-24 11:10:29 · 395 阅读 · 0 评论 -
《重构--改善既有代码的设计》--重构列表(5)
重构标准格式:1、名称(name)2、简短概要(summary)3、动机(motivation)4、做法(mechanics)5、范例(examples)原创 2015-06-24 11:25:16 · 311 阅读 · 0 评论 -
《重构--改善既有代码的设计》--代码的坏味道(3)
何时需要重构?1、Duplicated Code(重复代码)A、同一个类中的两个方法含有相同的表达式。采用Extract Method提炼出重复的代码。B、两个互为兄弟的子类内含相同表达式。对两个类都使用Extract Method,然后Pull Up Method推入到超类。原创 2015-06-23 16:25:44 · 351 阅读 · 0 评论 -
《重构--改善既有代码的设计》--重构原则(2)
重构定义:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。重构时不能添加新功能,只改变程序结构。优点:1、改进软件设计;2、软件更容易理解;3、帮助找到bug;4、提高编程速度;When use?第一次做某件事时只管去做;第二次做类似的事会产生反感原创 2015-06-23 15:05:07 · 379 阅读 · 0 评论 -
《重构--改善既有代码的设计》--处理概括关系(11)
一、Pull Up Field(字段上移)两个子类拥有相同的字段。将该字段移至超类。二、Pull Up Method(函数上移)有些函数,在各个子类中产生完全相同的结果。将该函数移至父类。1、检查待提升函数,确定它们是完全一致的。2、如果特提升函数名不同,修改与父类相同的函数名。3、在父类新建一个函数,将待提升的函数代码复制到到新函数中。4、编译。5、移除子原创 2015-07-30 17:12:57 · 431 阅读 · 0 评论