悠然乱弹:从几个方法的重构讲开去--性能大优化

简介:

现在还存在多次扫描处理的问题,也就是说虽然代码结构性重构是成功的,但是性能问题还是没有根本解决。

在给出解决方案之前,需要对这个处理方式缕一缕:

处理方式1:每次遍历全路径找到待处理文件,文件然后批量进行处理。优点是处理起来比较简单,但是会重复扫描。

处理方式2:一次遍历所有文件,然后对每个文件进行注解检测。扫描全路径只有一次,然后要把每个文件与过滤器进行比较如果比较成功那就做,比较不成功就不做。

稍加分析就会发现,两种方式的比较次数是一样的,但是第二种方案遍历文件的次数就少到极限了,还能比1次更少么??

这次的做法就有点复杂了(相对的,实际上也很简单),做一个过滤器,里面放个Map存储过滤器:处理器。

对于每个一个文件,都对所有的过滤器进行校验,如果校验成功,就执行对应的处理器。

?
1
2
3
4
5
6
7
8
9
10
11
public class ComplexFileFilter implements FileObjectFilter {
     Map<FileObjectFilter,FileObjectProcessor> filterProcessorMap;
     public boolean accept(FileObject fileObject) {
         for (FileObjectFilter filter:filterProcessorMap.keySet()){
             if (filter.accept(fileObject)){
                 filterProcessorMap.get(filter).process(fileObject);
             }
         }
         return false ;
     }
}

呵呵,性能的问题也提升完毕了。

至此,从几个看似重复的方法,我们通过层层分析,细致推理,终于找到了内部的复杂关系,通过重构,给程序员以便捷的开发与扩展,给使用者以高效的性能和一目了然的逻辑,皆大欢喜了。

总结:许多的时候,一些纠结,重复,无从动手,都是有其内在的复杂因素的,之所以剪不断理还乱,是因为没有抓住实质,但只要把它理顺了,其实各干干的,就简单了。

相关文章
|
30天前
|
算法 搜索推荐 数据挖掘
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
30 1
|
11月前
|
XML 测试技术 数据格式
【实测】有奇效!用测试用例设计的路子去学习新知识点。
【实测】有奇效!用测试用例设计的路子去学习新知识点。
|
设计模式
重构·改善既有代码的设计.04之重构手法(下)完结
重构改善既有代码的设计完结篇,汇总了全部的重构手法。看看哪些手法对你的项目能有所帮助…
7357 2
重构·改善既有代码的设计.04之重构手法(下)完结
|
设计模式 测试技术
重构·改善既有代码的设计.02之代码的“坏味道”
之前在《重构·改善既有代码的设计.01》中初步了解了重构的基本前提,基础原则等入门知识。今天我们继续第二更......
163 1
重构·改善既有代码的设计.02之代码的“坏味道”
|
存储 NoSQL 算法
完爆 90% 的性能毛病,22 点通用绝招介绍(一)
完爆 90% 的性能毛病,22 点通用绝招介绍(一)
完爆 90% 的性能毛病,22 点通用绝招介绍(一)
|
存储 缓存 运维
完爆 90% 的性能毛病,22 点通用绝招介绍(二)
完爆 90% 的性能毛病,22 点通用绝招介绍(二)
完爆 90% 的性能毛病,22 点通用绝招介绍(二)
|
Java Spring
9条消除if...else的锦囊妙计,助你写出更优雅的代码(下)
9条消除if...else的锦囊妙计,助你写出更优雅的代码(下)
|
设计模式 算法 Java
9条消除if...else的锦囊妙计,助你写出更优雅的代码
9条消除if...else的锦囊妙计,助你写出更优雅的代码
|
设计模式 移动开发 安全
与其硬啃“屎山”代码,不如用这六步有条不紊实现代码重构 李慧文
对大规模系统进行重构,如果一个人对着又臭又长的代码硬刚,即使花了大量的时间进行手工验证,最后仍然会有很多问题,特别是一些深路径及特殊场景下的问题。其实,大规模的系统级别重构时是有方法的。我们采访了 Thoughtworks 数字化转型与运营 资深咨询师黄俊彬(QCon+案例研习社讲师),请他来分享 MV*模式重构演进的方法和经验。
521 0
与其硬啃“屎山”代码,不如用这六步有条不紊实现代码重构 李慧文
|
Java 编译器 测试技术
这波性能优化,太炸裂了!(上)
这波性能优化,太炸裂了!(上)
156 0
这波性能优化,太炸裂了!(上)

相关实验场景

更多