美文网首页
三重if嵌套的重构

三重if嵌套的重构

作者: sidyph | 来源:发表于2018-08-08 14:38 被阅读0次

    现在有一段代码,已经开始在初步重构,图片如下。

    函数说明:

    1.self.is_ftp:判断是否是需要ftp处理的数据

    2.self.is_dir:判断是否是文件夹

    3.self.is_pickle:判断是否是pickle类型的文件

    4.read:主函数,需要给你一个file_path,就可以自适应的以不同方式获取数据,read函数的if嵌套分三层,由外向内依次为:ftp、dir、pickle

    5.process_dir:处理dir及以下的数据

    6.process_pkl:梳理pickle以下的数据

    图1 待重构的代码

    分析:这段代码由三层if嵌套完成。如何将这三层嵌套拆分出来?

    思路:

    1.如果是共性的,如is_dir,则可以直接在read函数下写出;

    2.将ftp、local这样的不同做好标记传入内部函数,内部函数根据传入的标记,定义不同的参数,然后统一调用这些参数名,这样就完成了对不同ftp\local调用不同的参数的目的。

    重构后的代码如下:

    1.read:主函数

    2.process_pkl:read的内部函数,处理ftp、pickle不同的数据

    图2 重构后的主函数
    图3 重构后的内部函数

    相关文章

      网友评论

          本文标题:三重if嵌套的重构

          本文链接:https://www.haomeiwen.com/subject/dsxxbftx.html