重构第15天 移除重复的代码(Remove Duplication)
理解:移除重复的代码,顾名思义就是把多处重复的代码搬移到一个公共的地方,来减少代码量,提高代码可维护性。
详解:看下面的例子就很容易理解
重构前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)相关推荐
- 把三千行代码重构为15行
2019独角兽企业重金招聘Python工程师标准>>> 如果你认为这是一个标题党,那么我真诚的恳请你耐心的把文章的第一部分读完,然后再下结论.如果你认为能够戳中您的G点,那么请随手点 ...
- python不变的数据结构是_Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法...
本文实例讲述了Python从序列中移除重复项且保持元素间顺序不变的方法.分享给大家供大家参考,具体如下: 问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可 ...
- 面试精讲之面试考点及大厂真题 - 分布式专栏 15 如何解决消息重复,保证消息顺序问题
15如何解决消息重复,保证消息顺序问题 自信和希望是青年的特权. --大仲马 引言 我在<12.项目中为什么要使用消息队列>中列举了两个使用消息队列的例子. (1)收银系统,确认收款成功, ...
- code第一部分数组:从有序数组中移除重复的数据
code第一部分数组:从有序数组中移除重复的数据 第二题 从有序数组中移除重复的数据,但是可以保留2个重复的数. For example, Given sorted array A = [1,1,1, ...
- 面试题 02.01. 移除重复节点(链表删除操作模板)
链表删除操作:(不带头节点的链表,加上虚拟头节点(dummyHead)删除head就不用单独讨论) 增加虚拟头节点和pre指针: 模板: //创建头节点 ListNode *dummyHead=new ...
- python序列中各元素之间存在顺序关系_《Python Cookbook(第3版)中文版》——1.10 从序列中移除重复项且保持元素间顺序不变-阿里云开发者社区...
本节书摘来自异步社区<Python Cookbook(第3版)中文版>一书中的第1章,第1.10节,作者[美]David Beazley , Brian K.Jones,陈舸 译,更多章节 ...
- Java 移除重复节点 | 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
移除重复节点 难度简单97 编写代码,移除未排序链表中的重复节点.保留最开始出现的节点. 示例1: 输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3] 示例2: 输入:[1, 1, 1 ...
- 遍历ArrayList时移除重复元素失效问题
遍历ArrayList时移除重复元素失效问题 在使用ArrayList时遇到个问题,例如: public static void remove(ArrayList<String> list ...
- linux模糊匹配文件并删除,在Linux系统中使用dupeGuru查找并移除重复文件的教程
简介 对我们来说,磁盘被装满是棘手问题之一.无论我们如何小心谨慎,我们总可能将相同的文件复制到多个不同的地方,或者在不知情的情况下,重复下载了同一个文件.因此,迟早你会看到"磁盘已满&quo ...
最新文章
- 今日 Paper | 多人姿势估计;对话框语义分析;无监督语义分析;自然语言处理工具包等
- bilibili怎么设置弹幕数量_python爬取B站视频弹幕分析并制作词云
- C# XML的序列化与反序列化
- 获取安卓应用APK包名的方法
- 数据备份_这5种数据备份方式你全都了解吗?
- 从默认的 _id 字段中,取得时间信息
- Java对象转换成JSON对象/JSON对象转换成JSON字符串/JSON字符串转换成JS对象
- Openstack基础架构和各组件的关系
- 单个用户OWA登陆失败,提示用户名和密码错误
- 多进程-multiprocess
- 群晖NAS从入门到精通的所有帖子汇总,只要这一篇就够了
- 不同调制方式的包络和功率谱
- Windows蓝屏自动修复无法修复你的电脑
- 矿山安全监测预警与综合管理信息系统解决方案
- TeX系列: dot2tex 和 dot2texi 配置步骤
- 阿里巴巴编码规范认证
- 基于tflearn的RNN模仿莎士比亚写作
- 【博客431】接入层 汇聚层 核心层
- windows下vue-cli及webpack 构建网站(三)使用组件
- 服务器虚拟主机安装什么软件,虚拟主机软件如何安装
热门文章
- 元组tuple类型内置方法
- 关于常用mysql的文件
- vuex——做简单的购物车功能
- ng2中router-outlet用法
- UVA - 11478 Halum 二分+差分约束
- 解决toad中number类型小数位数过长按科学计数法显示的问题
- #100天计划# 2013年10月1日
- CKfinder2.0.2版本破解
- Vue报错:Error while running task D:\vue\forum:build with message‘spawn vue-cli-service ENOENT‘
- mysql5.0 Using a password on the command line interface can be insecure.最简单的解决办法