私は私は複合キーTaskType属性とUserActionによってActionProcessableを格納するためのマップを持っている。このロジックは、このコード例if-elseの深さを減らすにはどうすればいいですか?
public static ActionProcessable getActionProcessor(TaskType currentTaskType, UserAction userAction){
String actionKey;
if(userAction != null){
if(currentTaskType != null){
actionKey = buildKey(currentTaskType, userAction);
if(dossierActions.containsKey(actionKey)){
return dossierActions.get(actionKey);
}
}
actionKey = buildKey(anyTaskType(), userAction);
if(dossierActions.containsKey(actionKey)){
return dossierActions.get(actionKey);
}
}
return new NullActionProcessor();
}
を有します。このメソッドは、taskTypeとactionを入力してActionProcessableを返します。 TaskTypeはnullでもかまいません。その場合、userActionを取得するだけです。
私はソナーによって、このコードをチェックすると、それは
が、私はそれを改善する方法を知らない第三場合は、「深さ2(許可最大が1である)であれば、他の入れ子になった」と言います。 誰かが私に何かを提案していますか?条件のうち
ありがとう@Yeldar Kurmangaliyev。 あなたの説明は私には明らかです。私はコードがより簡潔できれいに見えると思います。私の例はJavaですが、C#でも知っておくと良いです。 –