要使用一个虚构的示例,假设我有一个 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();