Architecture 方法/函数是否负责验证您的调用?

Architecture 方法/函数是否负责验证您的调用?,architecture,semantics,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 } 我认

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

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函数
backIfNeeded
,这有点糟糕的编程设计


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

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


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

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

第二,你应该遵循不说不问的原则,在这种情况下,第一种选择


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

第二,你应该遵循不说不问的原则,在这种情况下,第一种选择