美文网首页
文件上传转换代码修整

文件上传转换代码修整

作者: silloye | 来源:发表于2018-06-27 11:34 被阅读0次

        前段时间代码紧急,需求复杂,写了个比较乱的代码。当其时的风格是按照面向过程来写的,最近看了《重构,改善既有代码的设计》后,有些想法,于是重构了一下,还不错。

        需求是这样的,文件上传并转换保存 : 

           1. 图片文件(gif,png,jpg)之类,如果是属于个人申请的,先添加水印,然后合并认证页面,再添加水印

            2.如果是office类文件,转pdf,再合并认证页面,最后加水印

            3.如果是pdf文件,合并认证页面,最后加水印

        第一个版本是比较乱,是随性写出来的,就是接收到文件后,判断是不是需要水印,是就调用方法添加,否则转pdf,然后合并和添加水印,当中代码最混乱的主要有三点 :

            1. 对文件一些属性的判断都放在了转换方法当中

            2. 相当多的临时文件生成,所以导致需要很多的临时文件路径出现在转换方法中

            3. 三类文件都有不同的文件转换过程,但是都放在了一起,显得更加乱

        所以第二个版本就将文件转换的过程单独出来一个方法,但是还是很乱

        最近一个版本稍微清晰了,就是将文件和文件的相关属性提取出来放在一个类里面,同时临时文件的生成方法也放在里面,这样一来,就清晰了很多

        第三个版本虽然看起来明显好了不少,但是有问题就是这里的流程嵌套了,没有单独出来,如果另外一个需求是另外一些文件需要不合并,或者不加水印,或者合并不加水印,这样就坑大发了,也会导致一团乱,所以下一步仍需重构,思路是用state模式。

    相关文章

      网友评论

          本文标题:文件上传转换代码修整

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