方法/功能是否负责验证您的通话?

时间:2017-04-26 14:18:49

标签: architecture semantics

为什么写函数/方法的最佳方法是?

1 - 第一种方式

function main() {
     back()
}

function back() {
    if(step > 0) {
          step = step - 1
     }
}

2 - 第二种方式

function main() {
    if(step > 0) {
          back()
     }
}

function back() {
    step = step - 1
}

我认为第二个选项是最好的方法,因为函数返回只做一件事......那就是回来了。但是,您认为正确的方式和原因是什么?

2 个答案:

答案 0 :(得分:1)

第二个。考虑第一种选择。在调用back()时,阅读代码的人无法判断是否执行了if检查。它很难概述实际情况。在这种情况下,后面的函数应该被称为backIfNeeded,它的程序设计很糟糕。

简而言之,第二种方案提供了更好的概述和更简单的执行流程。

答案 1 :(得分:1)

首先,您必须将浏览行为封装在负责它的类中。

其次,你应该遵循Tell-Don't-Ask原则,在这种情况下,是第一个选项

https://martinfowler.com/bliki/TellDontAsk.html