一次舒爽的重构经历
跟很多理论一样,单纯的研究设计模式或许枯燥乏味。从现实中零散的代码逻辑中分析抽象,再依照一些模式思维重构出新的结构,倒确实是能够产生一点满足感的事情。
背景是需要结合现有的代码漏洞,开发一些修补防御的工具类,以API的方式提供给平台或者业务侧。工具内容包括:数据加解密、编码解码函数、数据验证函数、密码管理工具等等。因为只是函数工具而已,起初妄图通过一个SecurityUtil类,整合所有的静态方法解决问题,却渐渐发现难于扩展,也越写越觉得无趣。于是重新分析,并重构了下,然后世界就瞬间美好了。
一、总体结构
- 首先是分门别类,并各自定义接口。因为各自功能区别明显,很easy。
- 定义简单工厂类,聚合以上接口,并由工厂负责在启动时读取配置,初始化接口实现。
- 工厂类提供统一的调用入口。
二、数据验证方式的细化
- 数据验证的接口比较多且杂,于是再定义出验证规则接口,并面向不同的验证方式分别定义不同的子类接口。比如文件验证和字符验证等,也方便再作拓展。
- 各验证接口通过SecurityRuleFactory统一聚合,保证运行期各验证规则的实例只有一份。
- 结合应用场景,可以参考规则引擎的实现,对多个验证规则作编组,轮训验证。