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

Posted 攻城狮Chova

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高质量代码总结!谈谈重构项目中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的方法,重新初始化(甚至可以写一个后台编辑脚本发布的功能)

    总结

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

    • 有方案不代表当前必须做,能把设计提前比需求快一步,就很好了
  • 学会给自己的代码分级,是让自己进步的最好的办法.一个人的成长分为几个阶段:

    • 面向功能编程
    • 面向性能编程
    • 面向复用编程
    • 面向未来编程

以上是关于高质量代码总结!谈谈重构项目中if-else代码的几点建议的主要内容,如果未能解决你的问题,请参考以下文章

在Spring boot项目中使用策略模式消除if-else

前端代码质量-圈复杂度原理和实践

Java重构-策略模式状态模式卫语句

前端代码质量-圈复杂度原理和实践

改善代码质量的6种重构模式

设计模式——设计原则与思想总结