这种情况模式有名字吗?

时间:2017-10-13 15:52:25

标签: if-statement design-patterns

有两种方法可以确保满足条件:

  • 简单的方法是使用if条件:

    if (condition)
    {
        /* execute code */
    }
    
  • 另一种方式类似,但我检查了否定条件,如果给出了return,我会检查:

    if (!condition)
    {
        return;
    }
    /* execute code */
    

这种模式有名字吗? 我试过谷歌但没有成功...

5 个答案:

答案 0 :(得分:2)

我相信这种模式叫做提前退出。

答案 1 :(得分:1)

他问我相信这些模式一般被称为什么,所以他可以研究它们。它们被称为条件逻辑。所以,如果你谷歌条件逻辑模式...谷歌有很多回应。

答案 2 :(得分:1)

我经常使用它。但我不知道它是否真的有名字 我认为它是fail-fast的衍生物 它通过在开始时隔离无名义情况并且然后离开名义/经典案例来提高可读性。

答案 3 :(得分:1)

之前的答案很好,但模式的名称更精确。我们先来看看其他名字。

  • 这两个例子都是条件逻辑,因此这个名称并不能真正帮助我们区分肯定执行和否定回报。
  • 否定回报确实构成提前退出,但由于还有其他方法可以实现提前退出,因此该名称并非特定于此示例。
  • 否定回报可能快速失败,但return是否必然失败仍存在争议。抛出异常将是一个更好的快速失败的例子,也将构成提前退出。

负回报更确切地说是guard clause,也是refactoring模式。

答案 4 :(得分:0)

我在野外看到了第二个模式的多个名称(带有return语句的名称)

  • 返回早期模式
  • 保护条款模式
  • 保镖模式

它通常用于减少代码中嵌套级别的数量,并有助于提高可读性。