zoukankan      html  css  js  c++  java
  • 重构-改善既有代码的设计(1)

     

     

    1,建立可靠地测试环境

     

    2,寻找要重构的代码(函数或者类)

       一般为比较长的函数,或者逻辑混乱的类

     

    3,重构后的函数要修改局部变量,增加程序的可读行

     

    4,函数应该放在它所使用的数据的所属对象内;

       (函数搬迁)

     

    5,尽量剔除临时变量

     

    6,不要在另一个对象的属性基础上运用switch语句,如果不得不使用,页应该在对象自己的数据上使用,而不是别人的数据上使用

     

     

    7,将子类型和父类型进行继承操作,来实现多态操作(Movie提取三个子类)

     

     

     

    8,将相同类型的不同部分以最小单位提取成类(Movieprice 提取成三个子类) 

     

    9,提取抽象类(Price

     

    什么时候重构?

    为什么重构?

    重构后的好处?

     

     

    1,重复代码

     

      ①两个函数中有两处使用同一表达式---提炼函数,让这两个函数同时调用提炼出来的函数

      ②两个兄弟类中有两处使用同一表达式----将函数提炼到超类中,子类调用超类函数

     

    2,代码过长

    原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名。我们可以对一组甚至短短一行代码做这件事,只要函数名能够表达其用途,我们就应该毫不犹豫的这么做

    ① 避免使用临时变量,因为这样做对程序的可读性得不到任何提升

     

    3,如何确定该提炼哪一段代码呢?

    ① 以个很好的技巧是:寻找注释。

    他们通常能指出代码用途和实现手法之间的语义距离..

    如果代码前方有一行注释,就是在提醒你:可以将这段代码替换成一个函数。

    而且可以在注释的基础上给这个函数命名。就算只有一行代码页应该这么做

    ②条件表达式和循环页是提炼的信号

       循环可以和其内的代码提炼成一个独立的函数,

       条件表达式可以使用分解条件来提取函数

     

     

    4,过大的类

     

    ①单个类干的事情太多将带来灭亡。

     

      

  • 相关阅读:
    linux date使用
    SHELL输出带颜色字体
    vimrc配置
    你所不知道的C++
    temp
    说什么好呢3
    Extjs3 Combo实现百度搜索查询
    Extjs3笔记 fbar
    Extjs combo赋值与刷新的先后顺序
    sql中nvarchar(max)长度测试
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3359799.html
Copyright © 2011-2022 走看看