`
blue2048
  • 浏览: 183697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重构二 Replace Method with Method Object

阅读更多
重构过程中,我们经常会使用Extract Method,当被抽取的函数局部变量繁杂时,Extract Method往往难以进行...
这时候我们可以使用Replace Method with Method Object来简化分析局部变量的工作。
其核心思想是使用类的成员属性保存变量,以达到在对象范围内变量的使用,而不用在函数间传递。

需要做的工作,有以下几步。
1.创建新对象,域中包含被抽取方法对象的引用和抽取函数中所有涉及到的局部变量
2.新建一个方法,并命名,将被抽取函数所有内容移至该函数内
3.在被抽取函数体内实例化新对象,并掉用其新建的方法

finally,
在新建的对象内,对新建的函数进行Extract Method,由于有成员属性的保障,使重构异常容易
分享到:
评论

相关推荐

    重构-改善既有代码的设计(中文版)

     Replace Method with Method Object 用方法对象代替方法   Substitute Algorithm 替换算法  Chapter 7:Moving Features Between Objects 在对象之间移动特性  *Move Method 移动方法   Move Field 移动...

    重构-改善既有代码的设计+中文版

     Replace Method with Method Object 用方法对象代替方法   Substitute Algorithm 替换算法  Chapter 7:Moving Features Between Objects 在对象之间移动特性  *Move Method 移动方法   Move Field 移动...

    重构-改善既有代码的设计

    6.8 Replace Method with Method Object(以函数对象取代函数) 135 6.9 Substitute Algorithm(替换算法) 139 第7章 在对象之间搬移特性 141 7.1 Move Method(搬移函数) 142 7.2 Move Field(搬移字段...

    重构 改善既有代码的设计

     Replace Method with Method Object 用方法对象代替方法   Substitute Algorithm 替换算法  Chapter 7:Moving Features Between Objects 在对象之间移动特性  *Move Method 移动方法   Move Field ...

    重构——改善既有代码的设计

     Replace Method with Method Object 用方法对象代替方法   Substitute Algorithm 替换算法  Chapter 7:Moving Features Between Objects 在对象之间移动特性  *Move Method 移动方法   Move Field 移动...

    重构,改善既有代码的设计

     Replace Method with Method Object 用方法对象代替方法   Substitute Algorithm 替换算法  Chapter 7:Moving Features Between Objects 在对象之间移动特性  *Move Method 移动方法   Move Field 移动...

    重构:改善既有代码的设计.[美]Martin Fowler.epub【文字版手机格式】

    6.8 Replace Method with Method Object(以函数对象取代函数) 6.9 Substitute Algorithm(替换算法) 第7章 在对象之间搬移特性 7.1 Move Method(搬移函数) 7.2 Move Field(搬移字段) 7.3 Extract Class(提炼类) ...

    重构-改善既有代码的设计 中文版

    6.8 Replace Method with Method Object(以函数对象取代函数) 6.9 Substitute Algorithm(替换你的算法) 第7章 在对象之间移动特性 7.1 Move Method(搬移函数) 7.2 Move Field(搬移值域) 7.3 Extract Class...

    编码中的21种代码坏味道

    如果你已经使用了 Extract Method(110)、Replace Temp with Query(120)和 Introduce Parameter Object(295)等方法,但仍然有太多临时变量和参数,那就可以使用 Replace Method with Method Object(135)来将...

    重构(Refactoring)英文版

    - **替换继承为委派(Replace Inheritance with Delegation)**:通过使用委托来替代继承关系,以减少类间的耦合度。 - **内联方法(Inline Method)**:将一个方法的实现直接嵌入到调用该方法的地方,从而去除该...

    Practical Object-Oriented Design With UML - McGraw-Hil

    - **替换算法(Replace Algorithm)**:使用新的算法替换现有的实现,以提高性能或简化代码。 - **引入参数对象(Introduce Parameter Object)**:当方法拥有大量参数时,将其转换为一个单独的对象,以增强代码的可读性...

    重构与模式.pdf

    #### 二、重构的意义 1. **提高代码质量**:重构可以消除代码中的坏味道,提升代码可读性和可维护性。 2. **增强系统的可扩展性**:通过重构可以使代码更易于理解和修改,便于添加新功能。 3. **降低维护成本**:高...

    代码优化的常见问题

    使用“Replace Method with Method Object”重构技术,将方法转换为一个具有自己状态和行为的对象。 7. **参数列表过长(Long Parameter List)**:长参数列表会使方法调用变得难看且不易理解。可以通过“Introduce...

    设计模式与重构(design pattern )

    3. 将函数参数对象化(Replace Parameter with Object):当一个函数接收多个参数且这些参数之间有关联时,可以创建一个新的对象来封装这些参数。 4. 移除重复代码(Remove Duplicate Code):找出并消除代码中的...

    Unity3D_C#代码重构速成

    5. **替换类型为接口(Replace Type with Interface)**:在某些情况下,使用接口而不是具体的类可以使代码更具扩展性,易于替换或扩展实现。 6. **使用聚合取代组合(Replace Aggregation with Composition)**:...

    重构:改善既有代码的设计 [重点整理版]

    - **替换方法对象(Replace Method with Method Object)**:将长参数列表替换为一个包含这些参数的对象。 ##### 5. **发散变化** - **定义**:发散变化指的是一个类因多种原因而频繁修改。 - **重构技术**: -...

Global site tag (gtag.js) - Google Analytics