TOP

什么是重构?

描述

重构 (Refactoring) – 对软件(软件)的内部结构进行的更改,使其更容易理解并更快地修改而不改变外部行为。此外,它是通过应用一系列重构来重构软件,而不改变软件的外部行为。


重构的优点:

当你需要进行重构时:

代码中的异味 (Smells Catalog) :

可能的重构选项

  1. Moving Features Between Objects (对象之间传输完整代码):

    • Move Method (突出显示方法) – 如果方法太长或包含需要注释的代码,则隔离一个单独的方法。
    • Move Field (时间场) – 当另一个类使用该字段比该字段的定义更频繁时执行。
  2. Organizing Data (资料时间):

    • Encapsulate Field (现场包装) - OOP的主要原则之一是封装或数据隐藏,通过开放数据,对象可以在数据所有者不知情的情况下读取并更改其值。因此,我们将关闭这样的字段并提供访问方法。
    • Encapsulate Collection (套装套装) - 教室里经常有一些模板,集合可以是数组、列表、集合或向量,getter方法不会返回集合对象本身,因为这将允许客户端修改集合的内容,如果不返回的话知道集合的类。因此,需要将方法返回的值设置为只读,并创建一个添加/删除元素的方法。
  3. Composing Methods (提取并组合代码):

    • Extract Method (突出显示方法) - 如果有一段代码可以分组,那么将代码放在一个单独的方法中,方法的名称可以通过方法来解释。
    • Inline Method (嵌入法) – 有时将方法移至其代码的调用处是非常有用的,将所有这些方法放入一个公共方法中,然后以另一种方式将这些方法分开。
    • Inline Temp (插入临时变量) – 只替换一次临时变量的简单表达式,有时这样的变量可能会干扰其他变量。
    • Replace Temp with Query (用计算手机手机手机最机可以) – 当使用临时变量存储表达式的值时使用,这种情况下,我们会将表达式替换为方法,并将代码中对该变量的所有引用替换为新方法。
    • Split Temporary Variable (分割临时变量) – 适用于使用单个临时变量多次分配不同结果的情况(除非是在循环内循环中使用的变量,并且不是累加结果的变量),在本例中,我们创建一个单独的临时变量每个变量的变量。
  4. Simplifying Conditional Expressions (带这个电影电影电视):

    • Decompose Conditional (操作条件符的分解) – 当我们有检查链接的条件(if-then-else)时,我们实现一个单独的方法来替换条件(if)、then 的一部分、以及 else 相应的代码段使用。
    • Consolidate Conditional Expression (表达条件的巩固) - 如果多个条件检查得到相同的结果,则执行该操作,需要将所有检查合并到一个条件表达式或方法中。
    • Consolidate Duplicate Conditional 分段 – 表达式的条件是同一段中的所有分支,需要将此代码转移到表达式中。
    • Remove Control Flag (删除控件标志) – 有一个变量变量承载一系列逻辑表达式的控制标识。我们使用 BREAK 或 RETURN 来会生。
    • Replace Conditional with Polymorphism (用多态性优语实方性电影符) – 当行为依赖于对象类型的条件时执行,需要对分支的每个分支的条件进行操作。