`

如何使用设计模式去除if else的硬编码语句呢?

 
阅读更多

 

如何去除if else的硬编码语句呢?

 

在代码中经常碰到if else 语句,当你看到这些硬编码的if else时有没有想处理掉的冲动呢?

 

if else的判断逻辑是不是比较简单,简单到只是某个字符串的相等判断,if else 要干的事情,是侧重处理 handle 还是侧重算法,如果意图是处理,那么可以考虑是命令,如果意图是算法,那么可以考虑是策略。那么如何产生这些handler,或者strategy呢?当然是工厂模式了。但是在工厂模式或者创建方法,还是有if else 语句啊。不论是工厂中使用class反射,还是new。

 

我们只是通过构建Map,通过Spring注入到类中,再通过key来得到某个实现类,这些实现类都是实现了统一的一个接口,这样就去除了if else的硬编码语句。

你可以把抽象出来的接口看作command,也可以看作strategy,关键看是你的意图是什么。

分享到:
评论

相关推荐

    设计模式与重构

    使用策略模式来替换复杂的if-else语句,使得代码结构更加清晰;使用观察者模式实现事件驱动编程,提高组件之间的解耦。同时,重构过程中,我们可以发现并应用设计模式,使代码更加符合面向对象的原则,如单一职责...

    设计模式--策略模式java例子

    在Java中,策略模式通常用于替换硬编码的条件语句,使代码更加灵活、可扩展和易于维护。下面我们将详细探讨策略模式的核心概念、实现方式以及在实际开发中的应用。 ### 一、策略模式的概念 策略模式定义了一系列...

    java设计模式之——策略模式

    2. **避免硬编码**:通过将不同的算法封装为策略类,可以避免在代码中直接使用if...else或switch...case语句进行硬编码,使得代码更加灵活,易于扩展和维护。 3. **独立的算法**:每个策略类都是一个独立的实体,...

    设计模式--策略模式StrategyPattern

    策略模式提供了一种将算法族封装到各自独立的类中,并在运行时选择具体算法的机制,从而避免了硬编码if...else或switch语句。 在策略模式中,策略类定义了一系列的算法,并让它们之间互相替换。这些策略类封装了...

    策略模式 template模式

    3. 消除了些 if else 条件语句。 4. 实现的选择 Strategy 模式可以提供相同行为的不同实现。 策略模式是一种对象行为型设计模式,定义了一系列算法,封装每一个算法,并使它们可以互相替换。它使得算法可以独立于...

    学习设计模式儿开发的Java版坦克大战游戏.zip

    通过工厂模式,我们可以创建一个游戏对象工厂,负责根据需要生成不同类型的游戏对象,避免了硬编码的if-else语句,提高了代码的灵活性。 其次,"单例模式"用于控制游戏的状态管理。例如,游戏的主控制器或者游戏...

    《设计模式18》-策略模式.ppt

    3. 当你希望避免使用条件语句(如if-else或switch-case)来选择不同行为,因为这可能导致代码的复杂性和维护困难。 策略模式的结构主要包括三个主要角色: 1. Context(上下文):使用策略的角色,它维持一个对策略...

    JAVA开发规范手册1.50

    JAVA开发规范手册1.50 ...* 使用依赖注入或服务定位器模式,避免使用硬编码依赖关系。 Java开发规范手册旨在提高Java开发者的综合素质和软件开发质量,规范Java编程风格和代码质量,提高软件开发效率和质量。

    策略模式 演化过程 重构过程

    在演化过程中,策略模式通常是从硬编码的条件语句或者复杂的if-else结构中发展出来的。当代码中的条件判断变得复杂,难以维护和扩展时,就到了重构的时候。重构的过程可以通过提取出这些算法,将它们封装成独立的...

    3. 工厂模式1

    有时候,不想用if-else的形式,也可以使用Map来对其进行封装。使用Map的工厂函数同时也是一个单例模式的应用。相较于在条件语句中创建实例,该方法更节省内存空间。 工厂模式 工厂模式实际上是对简单工厂模式的...

    JS设计模式之策略模式概念与用法分析

    本文实例讲述了JS设计模式之策略模式概念与用法。分享给大家供大家参考,具体如下: 策略模式的概念引用: 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同...

    C#编码标准,66条编码的好习惯,希望对程序爱好者的朋友有用.

    20. **避免大块的if-else**:考虑使用策略模式或状态机来简化复杂的逻辑。 21. **避免嵌套循环**:过多的嵌套循环可能导致性能下降,寻找替代方案。 22. **使用LINQ**:利用Lambda表达式和LINQ简化数据操作和查询...

    spring-boot-strategy

    在 Spring Boot 应用中,策略模式可以用于替换硬编码的 if-else 语句,使代码更灵活、可扩展。通过定义一系列的策略接口和实现这些接口的类,我们可以让客户端选择需要的策略对象,而不是在运行时通过复杂的逻辑选择...

    PHP设计模式之 策略模式Strategy详解【对象行为型】

    本文实例讲述了PHP设计模式之 策略模式Strategy。...当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。这两种实现方法我们都可以称之为硬编码,如果需要增加一种新的

    java 编码规范

    - 大括号的使用:`if`、`else`、`for`、`while`等语句的大括号始终放在同一行,块的结束大括号独占一行。 - 每行不超过80个字符,如果过长,应合理换行。 - 保持适当的空行以提高代码可读性,类之间留两行,方法...

    Android编程设计模式之策略模式详解

    例如,需要提供多种排序算法,可以将这些算法写到一个类中,每一个方法对应一个具体的排序算法:当然,也可以将这些排序算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来选择具体的算法。...

    设计模式之策略模式

    - 需要避免硬编码的条件语句:通过策略对象替换复杂的if-else或switch语句,使得代码更加清晰。 - 当算法需要由用户或配置文件动态指定时:例如用户可以选择不同的优惠策略。 5. **策略模式的总结** 策略模式...

    简单工厂模式

    例如,当新的产品类需要被创建时,工厂类可能需要添加新的if-else语句或者switch-case结构。这样的硬编码可能会导致工厂类变得庞大且难以维护,这是简单工厂模式的一个局限性。 重构过程是为了改善代码结构,减轻...

    策略模式(strategy)

    总的来说,策略模式是设计模式中的一种重要工具,它在处理算法多样化和灵活选择方面表现出色,特别是在需要频繁更换算法或者避免硬编码if-else语句的情况下。通过合理运用策略模式,可以使代码更加清晰、易于理解和...

Global site tag (gtag.js) - Google Analytics