1

作成された例を使用するために、 form.submit() メソッドがあり、送信前にフォームを検証したいとします。呼び出し元のコードで、検証をメソッドの内側に行うべきですか、それともメソッドの外側に行うべきですか?

バリデーションをメソッド内に置くと、常にチェックされていることが保証され、条件が満たされないまま誰かがメソッドを呼び出すことを心配する必要がなくなります。ただし、呼び出しコードを読んでいる人にとっては、検証が行われていることが明らかではない可能性があり、呼び出しコードに独自のチェックを追加して、検証を 2 回チェックすることになります。呼び出しコードで 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 に答える