1

要使用一个虚构的示例,假设我有一个 form.submit() 方法,并且我想在提交之前验证表单。验证应该在调用代码中的方法内部还是外部?

如果我将验证放在方法中,那么我可以确保它总是被检查,而不用担心有人在不满足条件的情况下调用该方法。但是,对于阅读调用代码的人来说,验证正在发生可能并不明显,导致他们通过在调用代码中添加自己的检查来检查两次。如果他们在调用代码中看到的只是 form.submit(),他们可能没有意识到它正在执行验证,从而导致他们通过在方法调用周围添加 if 条件来在调用代码中复制它。

处理这个问题的正确方法是什么?

public void submit() {
    if(this.isValid()) {
        // do submission
    }
}

...

form.submit();

或者

public void submit() {
    // do submission
}

...

if(form.isValid())
    form.submit();
4

1 回答 1

0
public void validateAndSubmit() {
    if(this.isValid()) {
        this.submitWhenValid()
    }
}
public void submitWhenValid() {
    // do submission
}
...

form.validateAndSubmit();
于 2012-07-21T02:17:23.573 回答