什么时候重构?
1.重复的代码:提炼重复的代码
2.函数过长;精简函数,分割成不同的小功能函数
3.类过大:分割类,每个类只用来做相应的事情。
4.函数中参数列过长:用传递对象替代传递参数
5.发散式变化:变动一个地方时,要修改好几个地方的时候。
6.霞弹式修改:找到四处分布需要修改的代码,将它们集中起来。
7.依恋情节:函数使用那个class的数据最多,就把函数摆在那个class中。或者将函数分解成数个小函数,分别放在不同的地方。关键:将总是一起变化的东西放在一起。
8.数据泥团:总是绑在一起出现的数据,应该放进属于它们自己的对象中。
9.基本类型偏执:基本类型表示数值,class表示字符串和日期
10.switch:在单一函数中有些选择事例,并不会改动,那么可以使用switch,否则的话使用多态
11.平行继承体系:没有看懂
12.冗赘类:不要添加对程序没有作用的或是没有变化的类。
13.夸夸其谈未来性:程序中,如果所有装置都能用到,那么可以写,如果用不到,就不值得写,不然会造成系统难理解和维护
14.令人迷惑的暂时值域:
15.过度耦合的消息链:
16.中间转手人:
17.亲昵关系:把两类的共同点提取到安全地点,使用这个安全点。
18.异曲同工的类:
19.不完美的程序类库:
20.纯粹的数据类:
21.被拒绝的遗赠:
22.过多的注释:
分享到:
相关推荐
### MT3333参考设计解析 #### 一、概述 MT3333是一款高性能的全球导航卫星系统(GNSS)芯片,广泛应用于移动设备、汽车导航等场景。本篇将详细介绍MT3333参考设计中的关键知识点,帮助读者更好地理解其工作原理与...
这款模块采用MT3333方案,支持多系统联合定位,包括GPS(全球定位系统)、GLONASS(俄罗斯全球导航卫星系统)、BDS(北斗卫星导航系统)以及GALILEO(欧洲全球导航卫星系统),从而提供了全面且准确的全球定位能力。...
题目“HDU 3333 Turing Tree”要求解决的问题是:给定一个整数序列和一系列区间,计算每个区间内不重复数字的和。由于数据规模较大(N ,000, K ,000),直接的暴力方法效率过低,因此我们需要采用一种更高效的数据...
"各种高效特效插件3333"这个压缩包可能包含了一系列精心设计和优化的特效资源,适用于创建令人惊叹的游戏场景。这些插件通常由专业开发者制作,旨在帮助游戏制作者快速实现复杂的视觉效果,而无需从零开始编写代码。...
【Singer胜家3333使用说明书】是针对该品牌的一款家用缝纫机的详细指导文档,旨在确保用户安全并有效地使用机器。说明书中的重要安全警告和注意事项是使用前必须了解的关键信息。 1. **安全警告**: - 防止触电:...
NA H3333系列电容式探测器是一款专为带材加工行业设计的精密检测设备,能够提供三个位置信号输出,包括Edge1、Edge2和Edge1-Edge2,用于带材位置的准确监测。该探测器的电源可以选择北美公司的控制器H6600或H6601...
HIOKI_3333单相功率计说明书 六个可选电流范围:从 50mA 到 20A。 交流-真有效值测量 可选变压器测量的 VT 和 CT 比率设置,可将测量显示扩展至 92MW 三路 LED 显示器,用户可选择 3 种测量变化组合 可选择平均...
《HTC T3333手机截图软件:深入解析与应用》 在移动设备日益普及的今天,截图功能已经成为我们日常使用手机时不可或缺的一部分。针对多普达 HTC 系列,特别是型号为 T3333 的手机,有一款专为 WM6.0-6.5 操作系统...
在"Django学习资源3333"这个压缩包中,我们很可能会找到一系列与Django相关的学习资料,如教程、课件、示例代码等,这些都能帮助初学者或有经验的开发者深入理解Django框架。 Django的核心概念包括模型(Models)、...
### 关于CVE-2010-3333的研究:替代性利用向量 #### 研究背景与概述 CVE-2010-3333是一则关于微软Office RTF(Rich Text Format)文件格式中的缓冲区溢出漏洞的信息。此漏洞由团队509与VeriSign iDefense Labs合作...
《智能点播器系统开发详解:从easy_play到play3333.com》 智能点播器,作为现代数字化生活的重要组成部分,为用户提供便捷、高效的内容观看体验。本项目“easy_play_智能点播器_play3333.com_easy_easyplay_”是一...
WEB-INF3333.rarWEB-INF3333.rarWEB-INF3333.rarWEB-INF3333.rarWEB-INF3333.rar
"IE3333 matlab仿真.zip" 是一个包含MATLAB仿真的压缩文件,很可能与某个课程或项目相关,编号可能是课程代码或者项目编号。MATLAB是一款强大的数学计算和建模软件,广泛应用于工程、科学计算以及数据分析等领域。在...
【教学课件电商直播3333】是一个涵盖了电商直播领域的多方面知识的教学资源,旨在帮助学习者深入了解和掌握电商直播的关键环节。课程分为四个主要项目,分别涉及电商的基础概念、主播团队建设、直播引流策略以及直播...
Touch2 Mega T3333 JTAG 接线图
积木框架源码
标题中的“3333_cable_pscadcable_PSCAD_电缆仿真_电缆模型6.zip.zip”表明这是一个关于电缆仿真的项目,使用了PSCAD软件进行建模。PSCAD(Power System Computer-Aided Design)是一款广泛应用于电力系统仿真分析的...
成果导向的创新创业基础3333教学大纲与PIPE教学方案是一种创新的教学模式,旨在解决高等教育中关于创新创业教育的“为什么、教什么、如何教、谁来教”的四大问题。这一模式由孙洪义教授在2017年的《创新教育研究》...