设计模式中有一个工厂模式,以前在书上看过,觉得好处也不怎么多。然而这几天近乎痛苦的工作让我深刻的体会到工厂创建对象的好处。公司需要在产品的Web GUI和后台两部分做性能分析,使用perf4j把方法执行的时间通过log4j输出性能日志文件,以便分析哪些方法是性能的瓶颈以方便改善。perf4j需要在方法的开始和结尾加上两段代码。这些工作需要我完成。
当我深入查看代码的时候,才发现需要处理的方法如此之多。几百个java类文件,共计上千个方法。再仔细一看,有的方法有上百行代码,多处抛出异常和多个return,这也就意味着我得在方法的多个地方做处理。崩溃了。。。我想尽办法。发现所有的action执行总时间可以通过使用一个filter类来解决。再看后台的Api类,发现有几个工厂,我欣喜,在工厂创建对象时,如果是debug状态,我创建一个代理对象,然后添加per4j的两行计时代码,速度的解决。当我高兴时,在代码中发现有人直接new Api类,我无语了,一个一个的改写成使用工厂来创建对象,然后再编译测试。时间浪费得大大地,如果当时大家没有直接new,而是使用工厂方法,那我就没必要这么费力了么。
改写成工厂还在继续,这一次真的深刻体会到了工厂之于new的好处。
当我深入查看代码的时候,才发现需要处理的方法如此之多。几百个java类文件,共计上千个方法。再仔细一看,有的方法有上百行代码,多处抛出异常和多个return,这也就意味着我得在方法的多个地方做处理。崩溃了。。。我想尽办法。发现所有的action执行总时间可以通过使用一个filter类来解决。再看后台的Api类,发现有几个工厂,我欣喜,在工厂创建对象时,如果是debug状态,我创建一个代理对象,然后添加per4j的两行计时代码,速度的解决。当我高兴时,在代码中发现有人直接new Api类,我无语了,一个一个的改写成使用工厂来创建对象,然后再编译测试。时间浪费得大大地,如果当时大家没有直接new,而是使用工厂方法,那我就没必要这么费力了么。
改写成工厂还在继续,这一次真的深刻体会到了工厂之于new的好处。
百度空间里一个叫yingnet的人写的,他说转载的时候一定要注明出处,我就很老实的写下来了,呵呵,祝他一切顺利,感谢。