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

简介: 本篇文章探讨了代码的重构以及优化,主要针对代码中大量的条件判断if-else语句问题提出了具体的优化建议。介绍了优化if-else语句的几种有效的方法,包括switch,接口interface以及数据库实现对条件语句进行的优化。

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的方法,重新初始化(甚至可以写一个后台编辑脚本发布的功能)

总结

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

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

    • 面向功能编程
    • 面向性能编程
    • 面向复用编程
    • 面向未来编程
目录
打赏
0
0
0
0
1278
分享
相关文章
【Java设计模式 规范与重构】 六 代码重构小结
【Java设计模式 规范与重构】 六 代码重构小结
266 0
重构的核心-让代码保持整洁
很久之前团队师兄向我推荐了《重构:改善既有代码的设计》这本书,粗略翻阅看到很多重构的细节技巧,但当时还处于未接触过工程代码,只关注代码功能,不太考虑后期维护的阶段,读起来觉得枯燥无味,几乎没有共鸣,一直没有细细阅读。在工作一年后,终于在师兄的督促下,利用一个月左右的早起时光读完了这本书,收获很多,感谢师兄的督促,感谢这本书陪伴我找回了阅读习惯。把这本书推荐给已经接触了工程代码、工作一年左右的新同学,相信有了一定的经验积累,再结合日常项目实践中遇到的问题,对这本书的内容会有很多自己的思考感悟
40612 4
重构的核心-让代码保持整洁
重构·改善既有代码的设计.01之入门基础
近期在看Martin Fowler著作的《重构.改善既有代码的设计》这本书,这是一本经典著作。书本封面誉为软件开发的不朽经典。书中从一个简单的案例揭示了重构的过程以及最佳实践。同时给出了重构原则,何时重构,以及重构的手法。用来改善既有代码的设计,提升软件的可维护性。
658 1
重构·改善既有代码的设计.01之入门基础
《重构2》第六章-重构基础
《重构2》第六章-重构基础
353 0
我来告诉你代码重构有什么好处
根据两本关于重构的书籍的作者 Martin Fowler的说法 “重构是改变软件系统的过程,它不会改变代码的外部行为,但会改善其内部结构。这是一种清理代码的严格方法,可以最大限度地减少引入错误的机会。本质上,当你重构时,你是在改进编写代码后的设计。”
300 0
程序员如何做好代码重构?
代码重构重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。重构不是重写,它们的区别你可以理解为,重构是修复代码,大框架不变。重写是扔掉原来的,重新设计框架。
251 0
程序员如何做好代码重构?
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
236 0
《重构:改善既有代码的设计》-学习笔记一(+实战解析)
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
611 0
《重构:改善既有代码的设计》-学习笔记二(+实战解析)
关于代码设计的几点思考
这篇文章主要总结一下自己在平时编码中遇到一些问题的思考。很多时候,代码设计很难十全十美,我们面对的往往是选择题,如何在多个选择之间权衡取舍,并不是一件简单的事情。
219 0
重构改善既有代码的设计---笔记
重构改善既有代码的设计---笔记
243 0