一、适用范围
过长的函数或者一段需要注释才能让人理解用途的代码应该被独立构造为一个函数。
二、既得利益
1、函数的粒度减小,函数被复用的机会更大。
2、函数的粒度减小,函数覆写也会更容易。
三、做法
1、创造一个函数,并以它的意图命名(以它做什么而不是怎样做命名)
2、将提炼出的代码从源函数赋值到目标函数中。
3、找出提炼出的代码中使用的源函数中的局部变量和源函数的参数。
4、检查是否有仅用于被提炼代码段的临时变量。如果有,在目标函数中声明为临时变量。
5、检查被提炼代码段,是否有局部变量的值被它改变。如果一个临时变量值被修改了,看看是否可以将被提炼代码段处理为一个查询,并将结果赋值给相关变量。如果很难这样做,或如果被修改的变量不止一个,你就不能将这段代码原封不动的提炼出来。先使用Split Temporary Variable、Replace temp with Query优化后再进行。
分享到:
相关推荐
### Extract Method 重构技术详解 #### 一、引言 在软件开发过程中,代码的维护性和可读性是非常重要的方面。随着项目的不断发展,代码库往往会变得越来越庞大且复杂,这给后期的维护工作带来了巨大的挑战。为了...
Extract Method 提取方法 Inline Method 内联方法 Inline Temp 内联临时变量 *Replace Temp with Query 用查询方法代替临时变量 Introduce Explaining Variable 引入解释性变量 Split ...
Extract Method 提取方法 Inline Method 内联方法 Inline Temp 内联临时变量 *Replace Temp with Query 用查询方法代替临时变量 Introduce Explaining Variable 引入解释性变量 Split ...
Extract Method 提取方法 Inline Method 内联方法 Inline Temp 内联临时变量 *Replace Temp with Query 用查询方法代替临时变量 Introduce Explaining Variable 引入解释性变量 Split ...
Extract Method 提取方法 Inline Method 内联方法 Inline Temp 内联临时变量 *Replace Temp with Query 用查询方法代替临时变量 Introduce Explaining Variable 引入解释性变量 Split ...
Extract Method 提取方法 Inline Method 内联方法 Inline Temp 内联临时变量 *Replace Temp with Query 用查询方法代替临时变量 Introduce Explaining Variable 引入解释性变量 Split ...
因此,研究者们一直在探索有效的方法来提取和监测城市的范围。这篇文章介绍了一种基于支持向量机(Support Vector Machine, SVM)的方法,用于从DMSP-OLS(Defense Meteorological Satellite Program's Operational ...
Extract Method 是一种常用的重构方法,它可以将重复的代码提炼出来形成一个新函数。如果函数内有大量的参数和临时变量,它们会对你的函数提炼形成阻碍。如果你尝试运用 Extract Method(110),最终就会把许多这些...
本文将详细讨论两种常见的重构技术:提炼函数(Extract Method)和内联化函数(Inline Method),并阐述它们的动机、机制及实际应用。 **提炼函数(Extract Method)** 提炼函数是一种用于提高代码可读性和可维护...
提取方法 内联方法 重命名方法 移动方法 移动属性 上拉法 上拉属性 下推法 下推属性 提取超类 提取接口 移动类 重命名类 提取和移动方法 更改包(移动、重命名、拆分、合并) RefactoringMiner 2.0 支持 移动和...
当方法内部有明显相关的代码块时,可以使用“Extract Method”将它们提取为独立的方法。如果方法参数过多,可以考虑使用“Introduce Parameter Object”或“Preserve Whole Object”来简化参数列表。 3. **临时变量...
4. **重构方法**:IDEA提供了强大的重构工具,包括提取方法(Extract Method)、重命名方法(Rename Method)、移动方法(Move Method)等,有助于优化代码结构,提高代码质量。 5. **调试方法**:IDEA的调试功能...
在本例中,我们使用《Refactoring:Improving the Design of Existing Code》一书中的例子,通过"提取方法"(Extract Method)重构策略,将`statement()`函数中的`switch`语句提炼为独立的`amountFor()`函数。...
4. **Extract Method(提取方法)**:当发现一段代码重复或复杂时,可以将其抽取成一个新的独立方法,增加代码的复用性和可读性。这种方法有助于保持函数的单一职责,使得代码更容易理解。 5. **Replace Type Code...
- **Pull Up Method**: 如果两个子类中有相同的代码,可以通过提取方法并在超类中实现该方法,然后在子类中重用这个方法。 - **Extract Class**: 当两个不相关的类中出现相同的代码时,可以考虑提取这些代码到一个新...
- **提取方法(Extract Method)**:将重复的代码提取到一个单独的方法中,并在需要的地方调用该方法。 - **提取类(Extract Class)**:如果重复代码涉及多个变量或者复杂的数据结构,可以考虑提取这些数据到一个...
例如,“移动方法”(Move Method)用于在不同类间移动功能,“内联方法”(Inline Method)用于合并方法以减少调用开销,“提取方法”(Extract Method)则用于将复杂代码块分解为更小、更清晰的方法。“替换临时...
例如,对于重复代码(Duplicate Code),可以采用提炼函数(Extract Method)或提炼类(Extract Class)等方法。对于长函数(Long Method),通过命名良好的短函数(smallmethod)和在函数调用中提供明确的意图,...