02Js代码优化-并列if-else语句优化

359 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情

这篇文章分享的内容来自B站up主 红桃A士的《改善丑陋代码》的系列视频,主要是视频内容的笔记和总结。

  • 下图中是开发中常见的并列if-else语句,针对的是将输入的内容进行映射然后输出出来。并列if-else语句存在的问题就是:随着逻辑分支的增多,而且当有不同的开发者来扩充这段代码时,这段代码就会存在多种不同风格的代码,这样会影响代码的可读性以及后期的维护。针对这个问题有下面两种解决方法:

image.png

image.png

优化方法一:表驱动优化

  • 使用map数据结构设计一个映射关系表,这样在后期的维护中就只要修改这张映射表就可以了

image.png

函数方法的映射表设计也同理:

image.png

优化方法二:策略优化

  • 使用面向对象的技术优化并列if-else语句,通过定义不同的策略类,在策略类中定义相同名称的类方法来完成对应的计算,之后就可以调用不同的策略类完成对应的计算

不同的策略类定义如下:

image.png

调用不同策略类的类实现如下:

image.png

image.png