パラメータはいつ検証されますか?

980 ワード

関数の実行の正確性を保証するために、関数の開始時にパラメータの正確性を判断するのが一般的であり、関数間で相互に呼び出されると、同じパラメータの正確性を複数回検証し、コード冗長性が現れる可能性がある.
たとえば、Actionの関数でServiceを呼び出す方法では、パラメータ検証位置には3つのケースがあります.
  • 1、サービスの関数の中で
  • 2、ActionでServiceを呼び出す方法の前
  • 、2つの関数でパラメータを検証する(コード冗長性があるに違いない)
  • 1つの関数がパラメータを空または空の文字列にできないことを要求している場合は、関数の中では次のようになります.
    
    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つの関数でパラメータ検証を行うか,それとも関数を呼び出す前にパラメータを検証するかである.
    皆さんは普段どのように書いているのか、お互いに参考にしてください.