お世話になります。
下記のような状況のときに、
重複するチェックをするべきかどうか
で悩んでおります。
例えば、パスワードの登録時の簡単なチェッカーを作る際、
1.古いパスワードが入力されているかどうか
2.新しいパスワードが入力されているかどうか
3.新しいパスワードの再入力されているかどうか
4.古いパスワードとDBに保持しているパスワードが一致するかどうか
5.新しいパスワードと再入力されたパスワードが一致するかどうか
のような手順になるかと思います。
この4、5の一致チェックの時に、再度nullチェックをかけるかどうか、です。
また、なぜこういった考えになったかにつきましては
再度nullチェックをかけた方がリスク回避にもなり、必要そうだ、とは思うのですが
どうしても冗長な処理になってしまうので、一般的にはどういった処理にするのが
好ましいのかわからず質問させて頂きました。
お手数おかけ致しますが、よろしくお願い申し上げます。
以下コードです。
java
1public class PasswordChecker{ 2 public String getInputParamErrorMsg(PasswordParam inputParam, String db){ 3 final StringBuilder result = new StringBuilder(); 4 // 未入力チェック 5 result.append(getInvalidInputParam(inputParam)); 6 // 一致チェック 7 result.append(getNonconformityParam(inputParam, db)); 8 return result.toString(); 9 } 10 11 private String getInvalidInputParam(PasswordParam inputParam){ 12 final StringBuilder result = new StringBuilder(); 13 if(isInvalid(inputParam.oldPassword)){ 14 result.append("古いパスワードを入力して下さい。"); 15 } 16 if(isInvalid(inputParam.newPassword)){ 17 result.append("新しいパスワードを入力して下さい。"); 18 } 19 if(isInvalid(inputParam.rePassword)){ 20 result.append("新しいパスワードを再入力して下さい。"); 21 } 22 return result.toString(); 23 } 24 25 private String getNonconformityParam(PasswordParam inputParam, String db){ 26 final StringBuilder result = new StringBuilder(); 27 if(isMatch(inputParam.oldPassword, db)){ 28 result.append("古いパスワードが一致しません\n"); 29 } 30 if(isMatch(inputParam.newPassword, inputParam.rePassword)){ 31 result.append("入力された新しいパスワードが一致しません。\n"); 32 } 33 return result.toString(); 34 } 35 36 private boolean isInvalid(String param){ 37 if(param != null && param.length() != 0){ 38 return false; 39 } 40 return true; 41 } 42 43 private boolean isMatch(String basic, String target){ 44 // 下記個人的ぼやきです。 45 // このメソッドだけでみると下記チェックは必須だが、流れからすると不要になるように思える。 46 // 多人数プロジェクトの場合は、必須になるような気もするので、やはり必要? 47 // 他の人から、ここでもnullチェックしている理由がわからない、となったらそれはそれで混乱を招くような気もする。 48 if(isInvalid(basic)){ 49 return false; 50 } 51 if(basic.equals(target)){ 52 return true; 53 } 54 return false; 55 } 56}
java
1public class PasswordParam { 2 public String oldPassword; 3 public String newPassword; 4 public String rePassword; 5}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/09 02:09