method/function 是否负责验证您的调用?

Is the method/function responsible for validate your call?

为什么写 function/method 是最好的方法?

1 - 第一种方式

function main() {
     back()
}

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

2 - 第二种方式

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

function back() {
    step = step - 1
}

我认为第二种选择是最好的方法,因为函数 back 只做一件事......那就是 back。但是,您认为正确的方法是什么?为什么?

第二个。考虑第一种选择。在调用 back() 时,阅读您的代码的人无法判断是否执行了 if 检查。它对实际发生的事情的概述很差。在那种情况下,后退函数应该被称为 backIfNeeded ,这有点糟糕的编程设计的味道。

简而言之,第二种选择提供了更好的概览和更简单的执行流程。

首先,您必须将浏览行为封装在一个 class 中并对其负责。

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

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