zoukankan      html  css  js  c++  java
  • 重构技巧

    重构技巧:

    1,重复代码提炼
    将代码中重复代码提取到一个单独的方法中,大大减少代码量,
    例如:微信授权方法中需要多次请求微信服务器,可以将多次的HTTP请求进行单独提炼

    2,冗长方法分割
    将方法中冗长的代码进行适当分割,将分割的代码组成一个新的方法
    例如:微信授权方法对AuthCode,AccessToken,Openid等信息进行多次验证和获取;
    <1>可以将多次的请求先进行重复代码提炼,对请求进行单独方法处理;
    <2>对微信授权方法中不同功能模块分割,将分割代码组成新方法;

    3,嵌套条件分支优化
    【1】将不满足某些条件的情况放在方法前面,并及时跳出方法
    例如:
    public void someMothod(Object A, Object B){

    if(A == null){ //先判断不满足条件的情况,是方法及时跳出
    return ;
    }
    if(B == null){
    return ;
    }

    ...
    }
    【2】嵌套条件合并
    例如:
    public void someMothod(Object A, Object B){

    if(A != null && B != null){ //将嵌套条件进行合并,避免由于分离降低代码可读性
    ...
    }
    }

    4,去掉一次性的临时变量
    一次性的临时变量会影响性能和代码可读性
    例如:
    public void someMothod(int num){
    // int temp = getUserCount();
    // return num * temp; 
    //避免不必要的临死变量产生
    return num * getUserCount();
    }

    5,消除过长的参数列表
    对于参数过多的方法,可以将过多的参数封装成数据传输对象,进行传参
    例如:
    public void someMothod(DataDO dataDO){ //尽量使用数据传输对象(DataDO ps:getter/setter)
    ...
    }

    6,提取类或继承体系中的常量
    【1】消除系统中的一些魔数和字符串常量,提高对系统常量的维护性
    例如:微信授权中多个公众号的APPID,SECRET,请求地址,系统响应信息等应定义枚举或者静态常量
    private static final String PARAM_IS_NULL = "参数为空"; 
    public String someMothod(Object A){

    if(A == null){
    return PARAM_IS_NULL; //尽量使用静态变量
    }
    }
    【2】子类中有一样的属性和方法,放到父类当中

    7,让类提供应该提供的方法
    例如:
    public int someMothod(DataDO dataDO){
    // int i = dataDO.getI();
    // int j = dataDO.getJ();
    // return i * j; //应该将此部分实现让DataDO实现
    // 让类提供应该提供的方法,而不是我们替他完成,否则会出现重复代码
    return dataDO.getResult();
    }

    8,拆分冗长类
    冗长类拆分注意类的属性; 两批属性应该是在逻辑上可以分离;如果存在属性存在拆分前后的两批方法中,
    可以通过参数传递来解决;

  • 相关阅读:
    WinowsXP 任务栏无法显示当前运行程序图标
    日志记录组件[Log4net]详细介绍(转)
    桌面上的IE图标变成了快捷方式那种图标 怎么还原回来
    面试必须要知道的SQL语法,语句(转载)
    兼容 火狐 IE 的JS时间控件 任意格式 年月日时分秒
    Nagios远程监控软件的安装与配置详解(1)
    linux集群 负载均衡实验笔记
    PHPB2B 模板 标签
    PHP 去除 HTML 回车 换行 空格
    OpenX参考网址
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/6428387.html
Copyright © 2011-2022 走看看