理解:移除重复的代码,顾名思义就是把多处重复的代码搬移到一个公共的地方,来减少代码量,提高代码可维护性。

详解:看下面的例子就很容易理解

重构前code

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6
 7 namespace ReflectorDemo
 8 {
 9     public class MedicalRecord
10     {
11         public DateTime DateArchived { get; private set; }
12         public bool Archived { get; private set; }
13
14         public void ArchiveRecord()
15         {
16             Archived = true;
17             DateArchived = DateTime.Now;
18         }
19
20         public void CloseRecord()
21         {
22             Archived = true;
23             DateArchived = DateTime.Now;
24         }
25     }
26 }

可以看到 Actived=true,DateArchived=DateTime.Now 在两个方法中都要用到,我们就可以把这连个字段提取出来,放到一个新方法中。

重构后code

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6
 7 namespace ReflectorDemo
 8 {
 9     public class MedicalRecord
10     {
11         public DateTime DateArchived { get; private set; }
12         public bool Archived { get; private set; }
13
14         public void ArchiveRecord()
15         {
16             SwitchToArchived();
17         }
18
19         public void CloseRecord()
20         {
21             SwitchToArchived();
22         }
23
24         private void SwitchToArchived()
25         {
26             Archived = true;
27             DateArchived = DateTime.Now;
28         }
29     }
30 }

这个重构很简单,绝大多数程序员都会使用这种重构方法。

重构第15天 移除重复的代码(Remove Duplication)相关推荐

  1. 把三千行代码重构为15行

    2019独角兽企业重金招聘Python工程师标准>>> 如果你认为这是一个标题党,那么我真诚的恳请你耐心的把文章的第一部分读完,然后再下结论.如果你认为能够戳中您的G点,那么请随手点 ...

  2. python不变的数据结构是_Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法...

    本文实例讲述了Python从序列中移除重复项且保持元素间顺序不变的方法.分享给大家供大家参考,具体如下: 问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可 ...

  3. 面试精讲之面试考点及大厂真题 - 分布式专栏 15 如何解决消息重复,保证消息顺序问题

    15如何解决消息重复,保证消息顺序问题 自信和希望是青年的特权. --大仲马 引言 我在<12.项目中为什么要使用消息队列>中列举了两个使用消息队列的例子. (1)收银系统,确认收款成功, ...

  4. code第一部分数组:从有序数组中移除重复的数据

    code第一部分数组:从有序数组中移除重复的数据 第二题 从有序数组中移除重复的数据,但是可以保留2个重复的数. For example, Given sorted array A = [1,1,1, ...

  5. 面试题 02.01. 移除重复节点(链表删除操作模板)

    链表删除操作:(不带头节点的链表,加上虚拟头节点(dummyHead)删除head就不用单独讨论) 增加虚拟头节点和pre指针: 模板: //创建头节点 ListNode *dummyHead=new ...

  6. python序列中各元素之间存在顺序关系_《Python Cookbook(第3版)中文版》——1.10 从序列中移除重复项且保持元素间顺序不变-阿里云开发者社区...

    本节书摘来自异步社区<Python Cookbook(第3版)中文版>一书中的第1章,第1.10节,作者[美]David Beazley , Brian K.Jones,陈舸 译,更多章节 ...

  7. Java 移除重复节点 | 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。

    移除重复节点 难度简单97 编写代码,移除未排序链表中的重复节点.保留最开始出现的节点. 示例1: 输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3] 示例2: 输入:[1, 1, 1 ...

  8. 遍历ArrayList时移除重复元素失效问题

    遍历ArrayList时移除重复元素失效问题 在使用ArrayList时遇到个问题,例如: public static void remove(ArrayList<String> list ...

  9. linux模糊匹配文件并删除,在Linux系统中使用dupeGuru查找并移除重复文件的教程

    简介 对我们来说,磁盘被装满是棘手问题之一.无论我们如何小心谨慎,我们总可能将相同的文件复制到多个不同的地方,或者在不知情的情况下,重复下载了同一个文件.因此,迟早你会看到"磁盘已满&quo ...

最新文章

  1. 今日 Paper | 多人姿势估计;对话框语义分析;无监督语义分析;自然语言处理工具包等
  2. bilibili怎么设置弹幕数量_python爬取B站视频弹幕分析并制作词云
  3. C# XML的序列化与反序列化
  4. 获取安卓应用APK包名的方法
  5. 数据备份_这5种数据备份方式你全都了解吗?
  6. 从默认的 _id 字段中,取得时间信息
  7. Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象
  8. Openstack基础架构和各组件的关系
  9. 单个用户OWA登陆失败,提示用户名和密码错误
  10. 多进程-multiprocess
  11. 群晖NAS从入门到精通的所有帖子汇总,只要这一篇就够了
  12. 不同调制方式的包络和功率谱
  13. Windows蓝屏自动修复无法修复你的电脑
  14. 矿山安全监测预警与综合管理信息系统解决方案
  15. TeX系列: dot2tex 和 dot2texi 配置步骤
  16. 阿里巴巴编码规范认证
  17. 基于tflearn的RNN模仿莎士比亚写作
  18. 【博客431】接入层 汇聚层 核心层
  19. windows下vue-cli及webpack 构建网站(三)使用组件
  20. 服务器虚拟主机安装什么软件,虚拟主机软件如何安装

热门文章

  1. 元组tuple类型内置方法
  2. 关于常用mysql的文件
  3. vuex——做简单的购物车功能
  4. ng2中router-outlet用法
  5. UVA - 11478 Halum 二分+差分约束
  6. 解决toad中number类型小数位数过长按科学计数法显示的问题
  7. #100天计划# 2013年10月1日
  8. CKfinder2.0.2版本破解
  9. Vue报错:Error while running task D:\vue\forum:build with message‘spawn vue-cli-service ENOENT‘
  10. mysql5.0 Using a password on the command line interface can be insecure.最简单的解决办法