写点什么

高质量代码优化!谈谈重构项目中 if-else 代码的几点建议

发布于: 3 小时前
高质量代码优化!谈谈重构项目中if-else代码的几点建议

switch

  • if - else 只适合在 3 层之内使用

  • 当条件判断较多时,可以首先考虑使用 switch

interface

  • 当判断条件还可能动态增加时,可以考虑将 switch 进一步优化,引入接口 interface,将代码与数据分离:

  • 创建一个 map:

  • key: switch 的 case 值

  • value: 对应的实体类

  • 抽象出通用方法,变成一个接口,统一入参和返回值

  • 主实现类 controller 类就是将 type 值传进去,获取到对应的实现类,然后调用抽象出来的方法,这样无论增加多少个 case, 都不会改变主逻辑代码

  • 每个类单独实现接口,互不影响

db setting

  • db setting 表的方式加载 type 对应的实体类

  • 这样做到了配置数据化


  • 如果 case 中的实现类需要动态变化呢?

  • 解决方案:case 的实现用动态语言完成,并且将代码写在 db

  • db 里保存的是代码

  • 启动的时候初始化所有的实现类,以节省时间

  • 主实现类 controller 类里主逻辑代码不变,但额外提供一个初始化 map 的方法

  • 如果需要新增的 case 和实现类,修改 db,调用更新 map 的方法,重新初始化(甚至可以写一个后台编辑脚本发布的功能)

总结

  • 架构设计和需求相关,不仅要会技术,还必须懂行业,要知道需求在可见的时间里会变化到什么程度,然后根据不同的程度来给出不同的方案

  • 不要过度设计:

  • 有方案不代表当前必须做,能把设计提前比需求快一步,就很好了

  • 学会给自己的代码分级,是让自己进步的最好的办法.一个人的成长分为几个阶段:

  • 面向功能编程

  • 面向性能编程

  • 面向复用编程

  • 面向未来编程

发布于: 3 小时前阅读数: 5
用户头像

一位攻城狮的自我修养 2021.04.06 加入

分享技术干货,面试题和攻城狮故事。 你的关注支持是我持续进步的最大动力! https://github.com/ChovaVea

评论

发布
暂无评论
高质量代码优化!谈谈重构项目中if-else代码的几点建议