1、 Decompose Conditional(分解条件式)
面对复杂的条件(if-else if-else...)语句时,
——从if,then,else三个段落中分别提炼出独立函数。
2、 Extract Class(提炼类)
某个Class做了应该由两个Class做的事。
——建立一个新Class,将相关的值域和函数从旧Class搬迁到新Class
3、 Extract Interface(提炼接口)
若干客户使用Class接口中的同一子集;或者,两个Class的接口有部分相同
——将相同的子集提炼到一个独立接口中
(建议先运用Extract Class先把共通行为放进一个组件中,然后将工作委托该组件,从而解决这个问题)
4、 Extract SuperClass(提炼超类)
两个Class有相似特性
——为这两个Class建立一个SUperClass,将相同特性移至进superClass
5、 Introduce Parameter Object(引入参数对象)
某些参数总是很自然的同时出现
——以一个对象取代这些参数(把Range Class设为不可改变,也即其中所有值域都是final的,只能由构造函数来赋值)
6、 Preserve whole Object(保持对象完整)
你从某个对象中取出若干值,将他们作为某一次函数调用时的参数。
——改使用传递整个对象
甘蔗不曾两头甜,如果这个会使你的依存结构恶化,那么就不应该使用)
拓展:
如果被调用函数使用了来自另外一个对象的很多数据,这可能意味这该函数实际上应该被定义在那些数据所属的对象中。 所以考虑preserve whole Object的同时,你也应该move Method, 运用本次重构前若还没有定义一个完整对象,那么就请使用Introduce Paramter Object。
7、 Inline Class(将类内聚化) 与Extract Class相反
你的某个Class没有做太多的事情(没有承担足够责任)
——将class中的所有特性搬迁到另一个class中,然后移除原class
8、 Replace Type Code with Class(以类取代型别码)
——以一个新的Class替代该类数值型别码
9、 Introduce Null Object(引入Null对象)
你需要再三检查某物是否为null Value
——将null Value(无效值) 替换为null object(无效物)
null objects一定是常量,它们的任何成分都不会发生变化,因此我们可以使用单例模式来实现它们。
10、 Remove Parameter(移除参数)
函数本体(method body)不再需要某个参数
——将该参数移除
分享到:
相关推荐
笔记的第1-7天可能侧重于介绍重构的基本理论,包括重构的意义、何时进行重构以及如何衡量重构的效果。作者可能会讲解软件设计原则,如开闭原则、单一职责原则等,这些都是重构时需要遵循的重要指导方针。 8-14天...
本文以"重构代码笔记1"为出发点,深入探讨了24种常见的代码坏味道及其对应的重构策略。 首先,神秘命名(Mysterious Name)是重构的常见起点,通过改变函数声明和变量名,使其更具描述性,如将`cash0`更改为`cash_...
重构是软件开发过程中的一个重要环节,它涉及到对现有代码的改进,目的是为了提高代码的可读性、可维护性和设计质量,而不改变其外部行为。本文主要围绕重构的关键概念、原则、时机以及面临的挑战展开讨论。 首先,...
.NET 快速重构学习笔记是针对开发者提升代码质量和可维护性的重要指南。重构是一个系统性的过程,旨在改善软件设计,优化代码结构,而不改变其外在行为。在.NET开发环境中,重构是不可或缺的技能,它可以帮助开发者...
- "31天重构学习笔记"可能提供了每日重构技巧和案例,帮助深入理解重构过程。 - "Java重构示例"系列文档可能展示了Java代码重构的具体步骤和实践。 - "SVN搭建和使用手册"及"SVN中文教程"提供了关于SVN的详细指南...
重构的益处多样,包括改善软件设计,使代码更易于阅读和理解,帮助定位和修复bug,以及提高编程效率。重构应该成为开发过程中的常态,特别是在添加新功能、修复错误或代码审查时,都是进行重构的好时机。当发现代码...
《重构笔记》主要探讨的是软件开发过程中的一个重要实践——重构,它是提高代码质量、可维护性和可读性的重要手段。重构是指在不改变代码外在行为的前提下,对代码进行修改,以改善其内部结构。这一过程可以是局部的...
### 一、重构的概念与实践 #### 1.1 重构的意义 重构是指在不改变代码外部行为的前提下,对其内部结构进行改进的过程。这一过程能够帮助程序员更好地理解和维护代码,提高软件的质量。 #### 1.2 重构的目的 - **...
根据《重构 改善既有代码结构》一书,摘录重点整理分析得出的一个PPT,希望对大家有点帮助
1. **安全**:通过限制外部对集合的直接访问,可以防止意外修改,从而确保数据的完整性和安全性。 2. **控制**:封装允许开发者精确地控制集合的访问和修改行为,例如,在添加或移除元素时可以添加额外的业务逻辑。 ...
《重构商业:产业互联网时代的商业模式重构》读书笔记模板.pptx
1. **重复代码 (Duplicated Code)**: 这是重构的一个重要原因。重复代码会导致维护困难,因为当需要修改一处逻辑时,可能需要在多个地方进行同样的改动,增加了出错的风险。解决方法是提取公共代码到一个单独的函数...
第5章 重构列表5.1 重构的记录格式每个重构方法都有如下五个部分:概要(summary)简单介绍此重构方法的适用情景,以及它所做的事情。动机(motivati
重构 改善既有代码的设计笔记 网络转载,分享快乐
3. 过长的方法:如果一个方法执行了太多的任务,它就违反了单一职责原则,使得阅读和测试变得困难。应将大方法拆分成小的、可重用的部分。 4. DRY原则:重复的代码应当被提取成公共函数或模块,避免在多个位置重复...
【美】马丁福勒 著 是国际著名的面向对象分析设计、UML、模式等方面的专家,敏捷开发方法的创始人之一 重构_改善既有代码设计 软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄
9. **超星版**:超星版通常指的是电子版,可能包含了一些电子阅读特有的标记或格式,方便读者在线阅读或做笔记,便于随时随地学习和查阅。 总之,《重构:改善既有代码的设计》是一本对于任何软件开发者都极具价值...
1. **测试先行**:重构前确保有完整的单元测试,以便在重构过程中能快速检测出任何潜在的错误。 2. **小步前进**:每次重构只改变一小部分代码,避免引入大的、难以追踪的错误。 3. **持续集成**:频繁提交和集成...
《重构:改善既有代码的设计(第2版)》是一本由马丁·福勒(Martin Fowler)编著的经典软件工程书籍,主要关注的是如何通过一系列微小的改变来逐步改进现有代码的质量,提升软件设计的可读性、可维护性和可扩展性。...