我是靠谱客的博主 玩命铃铛,最近开发中收集的这篇文章主要介绍重构 改善既有代码设计---第三章 代码坏味道,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

3.1 重复代码
代码重复会让整个类变得更大,影响代码阅读。

1.同个类:不同方法中多次出现重复的代码或者表达式时,可以使用“提炼方法”的方式将重复代码或表达式提炼到方法A中,所有使用到这段代码或者表达式的方法通过对A方法的调用实现功能
2.两个互为兄弟的类中含有相同的代码或者表达式:将重复代码提炼到指定方法A中,再将A方法推入到超类,后两个子类通过调用超类的方法A完成功能
3.不同的类中出现重复代码:应将该重复代码提炼到独立的类中,后通过使用新类中定义的方法实现功能

3.2 过长函数
代码越长,越难理解。
程序的解释能力、共享能力、选择能力,都是由小型函数支持的。
摘抄:
让小函数容易被理解的真正关键在于一个好名字,如果你能给函数起个好名字,读者可以通过名字了解函数的作用,根本不必去看其中写了什么,
积极地分解函数,我们遵循一条原则:每当感觉需要以注释来说明什么的时候,我们就把需要说明的东西写进一个独立的函数中,并以其用途命名。
关键不在于函数长度,而在于函数“做什么”和“如何做”之间的语义距离。
1.函数中有大量的参数和临时变量:
1)使用replace temp query(以查询取代临时变量)来消除这些临时元素;introduce parameter object(引入参数对象)和preserve whole object(保持对象完整)则可以将过长的参数变得简洁;如果还是存在大量的临时变量,也可以使用replace method with method object(以函数对象取代函数)

3.3 过大的类
一个类只做一类事情
3.4 过长参数列
过长的参数列使用时会对不上号,难以理解。
1.使用对象替换过长的参数列,需要的参数只需要从对象中获取即可,参数的增删改,不会对使用的函数造成大影响。

3.5 发散式变化
定义:某个类常常会因为不同的原因在不同的方向上发生变化
一个类只做一类事情
3.6霰弹式修改
某种变化,会对多个类中方法进行修改(不能大意,否则会漏掉需要修改的地方,导致系统功能错误)
将发生改变的方法移动到一个类中
3.7 代码耦合
A类中某函数在进行功能实现时,对B类中多个不同的函数进行调用,耦合度过高。
解决:将所有使用B类数据和函数的地方进行提炼,再将该提炼的函数移至B类,A类中方法只需调用一次即可。
3.8 数据泥团
多个类中存在同名同意的字段,将这些字段整理出来,分别放入不同的类中,然后给它们赋予合适的函数签名(根据语义和用途对其进行提炼到新类中,对象命名根据用途命名
3.9 少用switch或使用多态
3.10 对于类中无用的属性或者组件,应将其消除,否则会使系统更难理解和维护
3.11 过度耦合的消息链(一个对象请求另一个对象,再向后者请求另一个对象…)
3.12 同样的功能,不一样的函数签名,合并代码。
3.13 注释:写明自己为什么做某事,也可以加入一定的功能实现步骤。

	*减少重复代码;一个方法不需要太长;警惕临时变量对程序的污染;坚持一个类只做一类事;方法参数列表不应太长;降低代码耦合;参数过多时可以使用对象替换;精简代码,避免类中出现无用的参数或组件;注释不宜过多,但要描述清楚为什么写此函数,可以加入一些实现步骤进行描述。以上改变可以使代码阅读者更好的阅读和理解代码。*

最后

以上就是玩命铃铛为你收集整理的重构 改善既有代码设计---第三章 代码坏味道的全部内容,希望文章能够帮你解决重构 改善既有代码设计---第三章 代码坏味道所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部