有一天进行代码走查,发现这段代码出现在4个类中,一字不差——
1.很明显:Ctrl+C,Ctrl+V的;类似的规则如果发生变化或者就是笔误哪个地方写错了,难道要去改4处?
2.同变量判断,却全用的if判断,把每种情况都变成最坏情况。
第1次改进:
1.使用了else if 做了一下小小的改进
2.方法改为static了,也把它放在一个规则类里了
但是不是感觉还是很笨拙?
第2次改进:
对于这种大量的常量映射,可以使用java.util.Properties
不过修改起来还是不方便...
第3次改进: 把这些配置信息放进一个CurrencyProp.properties文件中,文件和CurrencyRules.java放在同一个目录:
然后那个CurrencyRules中的static块就变成这个样子——
至此,一段公共规则被抽取出来了,并且易于配置。
不过如果希望规则修改后实时生效,可以放弃static方式而使用实例化方式,大家可以自己试着实现一下。
NO.57 代码优化初步 2.公共规则的抽取、可配置化
最新推荐文章于 2023-03-22 14:45:28 发布