创建一个函数来完成一个小的重复任务是一种反模式吗?

use*_*130 2 javascript design-patterns anti-patterns function typescript

我正在尝试学习编程的最佳实践,并希望让我的代码尽可能干净,但也可维护。例如,我正在运行一个等待每个元素被创建的程序。

a.waitForElementToAppear(50000);
b.waitForElementToAppear(50000);
c.waitForElementToAppear(50000);
Run Code Online (Sandbox Code Playgroud)

现在,我添加了一个函数,这样我就可以轻松更改,50000而无需手动编辑每个函数:

function waitForElement(element) {
    element.waitForElementToAppear(5000);
}
Run Code Online (Sandbox Code Playgroud)

并将上述代码更改为:

waitForElement(a);
waitForElement(b);
waitForElement(c);
Run Code Online (Sandbox Code Playgroud)

创建一个新函数来调用一个相对较小的任务是一种反模式吗?有没有更好的方法?

Ber*_*rgi 6

创建一个新函数来调用一个相对较小的任务是一种反模式吗?

不,绝对没问题!尽管您的功能太小以至于几乎没有任何收益,但您是对的。

有没有更好的方法?

为了实现容易改变共享参数值你的目标,你可以或者(不一定是“好”),也把它放在一个变量:

const time = 50000;
a.waitForElementToAppear(time);
b.waitForElementToAppear(time);
c.waitForElementToAppear(time);
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的是,该代码仍然有点重复。另一种选择是循环(尽管这三个项目只是循环合理的阈值):

for (const element of [a, b, c]) {
    element.waitForElementToAppear(5000);
}
Run Code Online (Sandbox Code Playgroud)

  • 您还可以为“waitForElementToAppear”设置默认值,这样您就不必在所有情况下都传递时间。 (2认同)