【重构笔记】重构与代码的坏味道

来源:互联网 发布:大势至usb端口禁用软件 编辑:程序博客网 时间:2024/04/28 09:53
重构的概念
1 重构就是在代码写完之后改进它的设计。
    重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
    重构(动词):使用一系列重构手法,再不改变软件可观察行为的前提下,调整其结构。
2 任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。
3 为什么重构:改进软件设计,使软件更容易理解,帮助找到bug,提高编程速度。
4 三次法则:事不过三,三则重构。
5 设计模式是你希望到达的目标,重构是到达之路。

代码的坏味道(什么地方需要重构)
1 重复代码
    1) 同一个类的两个函数含有相同的表达式→提炼重复的代码,让两个地方调用提炼出来的代码
    2) 两个互为兄弟的子类内含相同表达式→提炼重复代码,创建超类
2 过长函数
    每当感觉需要以注释来说明点什么的时候,需要把说明的东西写进一个独立函数中,并以其用途命名
3 过大的类
4 过长参数列(依恋情结)
    有了对象,你就不需要把所有的参数传递进去了,函数需要的很多东西都可以在函数的宿主类中找到(所以把函数写到和它关联多的宿主类中)
5 发散式变化
    当你看着一个类说:“如果新加入一个数据库,我必须修改这三个函数;如果新出现一种工具,我需要修改这四个函数。”那么此时也许将这个对象分成2个会更好,这么一来每个对象就可以只因为一中变化而需要修改。即:一个类受多种变化的影响
6 散弹式修改
    一种变化引发多个类相应修改
7 数据泥团
    如果删掉众多数据中的一项,其他数据将不再有意义,那么就应该为这些数据产生一个新的对象。
8 基本类型偏执
9 switch
    看到switch语句就应该想到用多态解决,先把switch语句提炼到一个独立函数中,再将case后面的条件搬移到需要多态性的那个类里。
10 累赘类:把他变成内部类

---------------------------------------------------------------------------------------------------------------
现在发送在CSDN上的文章都能在手机端查看啦,走路上班、闲暇之余可以看看手机,共勉共进!

0 0
原创粉丝点击