Substitute Algorithm(替换算法)
把某个算法替换成另一个更清晰的算法
public String foundPerson(String[] people) {for(int i=0; i<people.length; i++) {if (people[i].equals("Don")) {return "Don";}if (people[i].equals("John")) {return "John";}if (people[i].equals("Kent")) {return "Kent";}}return "";
}
重构:将函数本体替换为另一个算法
public String foundPerson(String[] people) {List candidates = Arrays.asList(new String[]{"Don", "John", "Kent"});for(int i=0; i<people.length; i++) {if (candidates.contains(people[i])) {return people[i];}}return "";
}
Substitute Algorithm(替换算法)相关推荐
- 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道
一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好. 同一个类的两个函数含有相同的表达式,采用Extract Method( ...
- 【重构】 代码的坏味道总结 Bad Smell (一) (重复代码 | 过长函数 | 过大的类 | 过长参数列 | 发散式变化 | 霰弹式修改)
膜拜下 Martin Fowler 大神 , 开始学习 圣经 重构-改善既有代码设计 . 代码的坏味道就意味着需要重构, 对代码的坏味道了然于心是重构的比要前提; . 作者 : 万境绝尘 转载请注明出 ...
- 重构-改善既有代码的设计:重新组织函数的九种方法(四)
函数过长或者逻辑太混乱,重新组织和整理函数的代码,使之更合理进行封装. 1. Extract Method 提炼函数 提炼函数:(由复杂的函数提炼出独立的函数或者说大函数分解成由小函数组成) 你有一段 ...
- 改善代码设计 —— 优化函数的构成(Composing Methods)
1. Extract Method (提炼函数) 解释: 如果发现一个函数的代码很长, 很可能的一种情况是这个函数做了很多事情, 找找看函数中有没有注释, 往往注释都是为了解释下面一块代码做的什么事情 ...
- 步步为营 .NET 代码重构学习笔记 九
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...
- 步步为营 .NET 代码重构学习笔记 十一
步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一.为何要代码重构 步步为营 .NET 代码重构学习笔记 二.提炼方法(Extract Method) 步步为营 .NE ...
- 重构-改善既有代码的设计读书笔记
1.基本重构 1.1 提炼函数(Extract Function) 将意图和实现分开,如果需要花时间浏览一段代码才能弄清它到底在干什么,那么就应该将其提炼到一个函数中,并根据它所做的事为其命名. 1. ...
- 代码坏味道之非必要的
:notebook: 本文已归档到:「blog」 翻译自:https://sourcemaking.com/refactoring/smells/dispensables 非必要的(Dispensab ...
- 重构-改善既有代码的设计:编写代码22宗罪(三)
1 Duplicated Code重复代码 不同的地方出现相同的程序结构: 如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们和而为一,程序会变得更好.最常见的"重复代码& ...
最新文章
- IDEA 2017 安装后 关联SVN
- NTFS 在linux上挂载,parted分区工具用法
- opencv学习笔记1:图片读入,显示与保存(有代码)
- boost::thread模块实现默认执行器的测试程序
- 开发db文件_Swoole高效跟传统的web开发有什么区别?life
- 我的Serverless实战——引领云计算的下一个十年
- mysql + keepalived高可用
- redhat 6.5 yum不能使用之改进
- 数据库设计优化经验谈(转载)
- CentOS 7下安装GUI图形界面
- 代码管理工具之git的学习
- Java 线程池实际运用案例
- Scratch少儿编程
- 宠物商店电子商务系统er图
- Flixel横板游戏制作教程(七)—VictoryState(胜利状态)
- 题解 UVA1449 【Dominating Patterns】
- 基于色彩恒常( color constancy)特性的Frankle-McCann Retinex图像增强。
- git 与github配置(老师详细版)
- 产品06-流程图与结构图
- MySQL数据库,emp,dept等表
热门文章
- 开源开放 | 熵简科技 AI Lab 开源金融领域中文预训练语言模型 FinBERT
- 技术动态 | ACL 2019 知识图谱的全方位总结
- 论文浅尝 | 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码
- PersonGraphDataSet近十万的开放人物关系图谱项目
- 笔记:猎头如何在一周之内“摸清”一个行业
- git push时报错fatal: Could not read from remote repository.
- Java -- 异常的捕获及处理 -- 范例 -- throw与throws的应用
- Hibernate第十一篇【配置C3P0数据库连接池、线程Session】
- 正则判断字符串是否为数字
- 通杀IIS7.0畸形解析0day漏洞