5

我只是在阅读意大利面条代码的前 100 个标志,我遇到了第 4 个,它简单地说明:

if ($status == "awake"){ 
    $actitivity = "Writing spaghetti code"; 
} else if ($healthstatus == "OK"){ 
    $activity = "Sleep"; 
} else { 
    print "CALL 911 IMMEDIATELY!"; 
}

我在其他意大利面条讨论中看到了这种多重 if-else 模式。我有点困惑为什么会这样,即使它适用于这个例子。

上面的例子是否不好,因为

  • 第一个变量actitivity表示编码器需要一些睡眠,所以这是个玩笑,或者

  • 在逻辑过程中不应输出视图,或者

  • 关于太多 if/else 的事情


编辑不要介意第二部分,这很糟糕,因为嵌套条件和多次返回

其他意大利面条讨论链接中,这很糟糕吗?

- 里面有逻辑return,它打破了流程,或者

- 太多的东西if/else堆积在彼此之上......?

4

1 回答 1

4

If/else语句经常违反开闭原则。(Java 示例,但在 PHP 中也有效)

解决方案 => 支持多态性。

此外,多次分配临时变量确实容易出错并降低可读性。特别是在 PHP 中,因为它不是静态类型的语言。确实,如果有人先分配$actitivity = "Writing spaghetti code";然后再分配怎么办$actitivity = 1;?...在同一个容器中混合苹果和橙子。看看这个:http: //sourcemaking.com/refactoring/split-temporary-variable

print此外,只有在验证了其中一个条件 => 方法没有凝聚力并因此违反了 SRP 时,该逻辑才允许出现副作用 ( )。

于 2013-08-30T08:55:46.433 回答