如何消除 if-else 链,以延长软件寿命
动机
从面向对象编程到函数式编程,从SOLID原则、DRY原则、YAGNI原则、KISS原则到设计模式,所有编程原则和范式都旨在提高代码的可读性和可维护性,所有这些原则和范式的主要目的都是为了编写简洁、易于维护的代码,从而实现软件的长期生命周期。因为软件本质上会不断发展和变化,所以所有这些概念都有助于我们使软件灵活且易于修改。
提高可读性和可维护性
最常见的代码异味之一是 if-else 链或代码分支,当然,没有 if-else 就无法开发软件,但大量使用会损害你的代码,为了消除/减少多个 if-else 链,你可以采取一些策略来避免这种代码异味。
早期失败机制
该机制的工作原理是先验证违规情况,如果发生违规则终止,而不是像下面这样先检查值是否正确再终止。
扁平链机构
这种机制通过在 if 语句中重复条件来避免代码分支,这种方法优先考虑代码的可读性而非性能,尤其适用于将来可能需要频繁修改的代码。
利用多态性
如果您有多个操作,并且需要根据特定条件触发特定操作,您可以将这些操作的创建封装到一个单独的类(工厂)中,并将确定哪些操作符合此条件委托到一个隔离的地方,从而使您的代码更易读,并且使代码严格遵循开闭原则。
谓词-作用机制
你可以使用映射或键值对列表来实现这种机制,其中一端是谓词(条件),另一端是谓词满足时要执行的操作。通过遍历这些键值对,你可以更好地实现条件逻辑。
使用状态设计模式
首先,您需要按如下方式定义您的状态。
然后实现每个状态,以及当前状态和允许从当前状态返回的状态。
然后将这些状态与你的对象一起使用。
如果你喜欢这篇文章,可以请我喝杯咖啡,提前感谢!
文章来源:https://dev.to/smuhammed/how-to-eliminate-if-else-chain-for-long-life-software-3ea3








