在哪里运行参数验证

时间:2013-10-21 16:40:01

标签: structure theory single-responsibility-principle responsibility

让我们说我们有一个函数,以及该函数的调用者

function baz(){
    myVar = null;
    foo(myVar);
}

function foo(bar){
    //do stuff
}

应该对参数进行验证吗?

可能是

function baz(){
    myVar = null;
    if(myVar != null){
        foo(myVar);
    }
}

或者可能是

function foo(bar){
    if(myVar == null) return null;

    //do stuff
}

什么更好?或者,如果它是情境,我什么时候应该使用什么?

也许这个的延伸也是我应该什么时候做的

myVar['key'] = myFunc();
function myFunc(){
   return x;
}

VS

myFunc();
function myFunc(myVar){
    myVar['key'] = x;
}

1 个答案:

答案 0 :(得分:0)

这在很大程度上取决于。如果您正在实施速度,您可能需要考虑向用户提供验证选择。如果您要实现稳定性,则可能需要验证作为函数的一部分。

想象一个数组,push()函数验证。现在想象一下,在游戏中以60 FPS每帧使用该功能几百次。如果每秒呼叫,这是额外的> 6000。这是一个足够重要的数字。