パラメータはいつ検証されますか?
980 ワード
関数の実行の正確性を保証するために、関数の開始時にパラメータの正確性を判断するのが一般的であり、関数間で相互に呼び出されると、同じパラメータの正確性を複数回検証し、コード冗長性が現れる可能性がある.
たとえば、Actionの関数でServiceを呼び出す方法では、パラメータ検証位置には3つのケースがあります.1、サービスの関数の中で 2、ActionでServiceを呼び出す方法の前 、2つの関数でパラメータを検証する(コード冗長性があるに違いない) 1つの関数がパラメータを空または空の文字列にできないことを要求している場合は、関数の中では次のようになります.
別の関数で上記のメソッドが呼び出されました.
これで検証パラメータのコードが重複します.
個人的には,サービス層ではパラメータの検証を行わずにパラメータが正しいと仮定できる.代わりに、サービス・レイヤを呼び出す方法の前に、入力する値を検証してから、適切なメソッドを呼び出すことができます.
問題の核心は,1つの関数でパラメータ検証を行うか,それとも関数を呼び出す前にパラメータを検証するかである.
皆さんは普段どのように書いているのか、お互いに参考にしてください.
たとえば、Actionの関数でServiceを呼び出す方法では、パラメータ検証位置には3つのケースがあります.
public void doSomething(String foo) {
if (null == foo || "".equals(foo.trim())) {
return;
}
// some code
}
別の関数で上記のメソッドが呼び出されました.
public void doAnything(String foo) {
if (null == foo || "".equals(foo.trim())) {
return;
}
doSomething(foo);
// some code
}
これで検証パラメータのコードが重複します.
個人的には,サービス層ではパラメータの検証を行わずにパラメータが正しいと仮定できる.代わりに、サービス・レイヤを呼び出す方法の前に、入力する値を検証してから、適切なメソッドを呼び出すことができます.
問題の核心は,1つの関数でパラメータ検証を行うか,それとも関数を呼び出す前にパラメータを検証するかである.
皆さんは普段どのように書いているのか、お互いに参考にしてください.