小对象,大作用,好优雅!
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
卷书成船
扫码关注公众号
扫码阅读
手机扫码阅读
问题初现
笔者在工作中发现,开发者在处理字段边界校验时,通常会将校验注解直接写在前端参数的VO对象中。这种方式虽然可行,但显得不够优雅且不利于代码重构。笔者通过《重构》理论中的"霰弹式修改"启发,提出了更优雅的解决方案,目标是通过特定类处理变化,提升代码可扩展性并减少修改工作量。
“初见”小对象
笔者提出了封装原生类型和字符串的小对象概念。通过小对象,字段的意义可以更加直观,避免不必要的注释和复杂命名。例如,将实体的字段封装成小对象使其易读性和表达能力更强。小对象不仅可以改善代码表现,还可以让实体更加生动、有意义。
小对象里的天地
小对象不仅仅是对基本类型的封装。它可以包含业务逻辑,例如字段的长度限制和边界校验,从而解决重复校验的问题。此外,小对象还避免了Utils工具类的滥用,使对象本身能够承担相关行为。例如,Name对象可以直接实现格式化输出,而无需依赖外部工具类。这种方式直观、优雅,且能够减少代码冗余。
近而深究其意义
小对象的应用意义重大,具体包括以下几点:
- 践行分离关注思想,将边界和异常处理的责任集中到业务对象中。
- 让业务代码更加集中,不会分散到web层或前端视图对象中。
- 代码更加整洁干净,无需大量注解。
- 独立于框架,避免框架升级或移除对业务代码的影响。
- 提高交付速率。
笔者在真实项目中实践了这一理念,并证明其有效性。此外,这一思想已被融入到开源企业应用级框架中,可供感兴趣的开发者参考与使用。
项目地址:https://github.com/highsoft-shanghai/hare
卷书成船
卷书成船
扫码关注公众号
没有了
上一篇
没有了
下一篇