`
阅读更多
重复代码的影响:程序中到处都是相同结构的表达式。若想修改此表达式,需要修改多个地方。
目标:相同表达式合并成一起,避免多处修改。降低修改成本。
常见以下几种:
1、同一个类有相同的表达式
2、两个类有相同表达式
3、两个子类有相同的表达式
4、两个不相干的类含有相同表达式

重复代码解决方法如下:

重复代码定义:不同的地方出现相同的程序结构:

    如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们和而为一,程序会变得更好。最常见的“重复代码”就是一个类内的两个函数含有相同的表达式。另一种常见情况就是两个互为兄弟的子类内含有相同的表达式。
  1)同一个类的2个函数含有相同的表达式,这时可以采用Extract Method(提炼函数)提炼出重复的代码,然后让这2个地点都调用被提炼出来的那段代码。
  2)两个互为兄弟的子类内含相同表达式,只需对2个类都是用Extract Method(提炼函数),然后对被提炼出来的函数是用Pull Up Method (方法上移) ,将它推入超类。如果代码之间只是类似, 并非完全相同,那么就得运用Extract Method(提炼函数 将相似部分和差异部分隔开,构成单独一个的函数。然后你可能发现可以运用Form Template Method (塑造模板函数)获得一个 Template Method设计模式。如果有些函数以不同的算法做相同的事,你可以选择其中较清晰地一个,并是用 Substitute Algorithm (替换算法)将其他函数的算法替换掉。
  如果2个毫不相关的类出现 重复代码,你应该考虑对其中一个运用 Extract Class (提炼类),将重复代码提炼到一个独立类中,然后在另一个类内使用这个新类。但是,重复代码所在的函数可能只应该属于某个类,另一个类只能调用它,抑或这个函数可能属于第三个类,而另2个类应该引用这第三个类。你必须决定这个函数放在哪儿最合适,并确保它被安置后就不会再在其他任何地方出现。


分享到:
评论

相关推荐

    DuplicateLines:揪出万恶的重复代码

    最好在写的时候就消灭重复代码,但总有接手别人的项目的时候 考虑到重复代码经常是 复制 粘贴 导致,所以暂且以 一行 为最小单位,展示出现的次数 根据 Obj-C 的关键字,去除一些重复行 删除 注释行 和 空格 删除...

    编码中的21种代码坏味道

    Duplicated Code(重复的代码) Duplicated Code是代码坏味道中最常见的一种。它指的是在不同的地点出现相同的程序结构。如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得...

    《重构 改善既有代码的设计》之代码的坏味道

    1. **重复代码 (Duplicated Code)** - **定义**:重复代码是指在多个位置出现了完全相同的代码片段。 - **解决方法**:为了消除重复代码,可以考虑将这些重复的部分抽象成单独的函数或方法,并在需要的地方调用这...

    重构-改善既有代码的设计(含中文PDF,英文chm)

    1. **识别代码坏味道**:书中列出了一些常见的代码坏味道,如重复代码(Duplicated Code)、过长方法(Long Method)、过大的类(Large Class)等。识别这些症状是重构的第一步。 2. **使用单元测试**:重构过程中...

    学习oo好榜样(设计良品)

    - **何时算是Bad**:即使是简单的判断语句,如`if (filename == null || filename.trim().equals(""))`,如果在多个地方出现,也应视为重复代码。一旦需要修改,就需要在多个位置进行修改,增加了潜在的风险。 - *...

    代码优化的常见问题

    1. **重复代码(Duplicated Code)**:重复代码会导致代码冗余,增加维护成本。解决方法是通过提取公共部分到一个单独的方法或模块,使用函数或类来抽象共享逻辑。例如,可以使用“Extract Method”重构技术,将重复...

    修改代码的艺术

    2. **识别坏味道**:书中列举了多种“代码坏味道”,如重复代码(Duplicated Code)、过长函数(Long Method)、过大的类(Large Class)等,这些都是代码质量下降的信号,需要进行重构。 3. **设计原则**:书中...

    构改善既有代码的设计

    1. **识别代码坏味道**:书中列举了多种常见的代码坏味道,如重复代码(Duplicated Code)、长方法(Long Method)和数据泥团(Data Clumps)等。这些坏味道是代码需要重构的信号。 2. **重构策略与技术**:马丁·...

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

    1. **代码异味**:书中列举了各种代码异味,如重复代码(Duplicated Code)、过长函数(Long Method)、过大的类(Large Class)等,这些都是代码质量下降的信号,需要通过重构来消除。例如,通过提取共同代码到一个...

    重构(改善既有代码的设计)

    6. **消除重复代码**:Duplicated Code(DRY)原则指出,知识不应在系统中重复。找出并消除重复的代码段,可以减少错误和提高一致性。 7. **创建更清晰的命名**:使用更具描述性的变量名和函数名,让代码自解释,...

    重构-改善既有代码的设计-课件.ppt

    - **重复代码(Duplicated Code)**:重复代码是最常见的问题之一,通常是由于复制粘贴造成的。解决方法包括提炼重复代码为单个函数或将相似代码抽象为通用方法。 - **过长的函数(Long Method)**:过长的函数降低...

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

    2. **代码坏味道**:书中列举了许多常见的“代码坏味道”,如重复代码(Duplicated Code)、过长函数(Long Method)、过大的类(Large Class)等,这些都是代码质量下降的信号,需要通过重构来解决。 3. **重构...

    Python库 | cleanode-0.1.2.tar.gz

    3. **处理重复代码**:Duplicated code,也称为“代码异味”,是软件维护的一大难题。cleanode能够识别并消除代码中的重复部分,鼓励代码重用,降低维护成本。 4. **重构冗余逻辑**:当代码包含复杂的条件语句和...

    重构代码笔记1

    其次,重复代码(Duplicated Code,DRY原则)被视为一种浪费,应通过提炼函数(Extract Function)或移动语句来消除。例如,将相同代码段提取成一个公共函数,减少冗余,提高复用性。 过长函数(Long Function)是...

    代码TOP10的坏味道

    以下是一些处理重复代码的方法: - **Extract Method**: 当在同一个类的两个方法中发现相同的代码时,可以提取这部分代码到一个新的方法中,然后在这两个方法中调用新方法。 - **Pull Up Method**: 如果两个子类中...

Global site tag (gtag.js) - Google Analytics