는 I 제가 결합 키와 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();
}
있다. 이 메소드는 input taskType 및 action으로 ActionProcessable을 리턴합니다. TaskType은 null 일 수 있으므로이 경우 userAction 만 가져야합니다.
내가 수중 음파 탐지기로이 코드를 검사 할 때, 그것은
그러나 나는 그것을 더 좋게 만드는 방법을 모르는 세 번째 경우는 "깊이 2 (최대 허용치는 1) 인 경우 - 다른 중첩"하고 있다고 . 누군가 나에게 뭔가 제안 했습니까? 조건 중
감사합니다. @Yeldar Kurmangaliyev. 당신의 설명이 나에게 분명하고 코드가 더 간결하고 깨끗해 보입니다. 내 예제는 Java이지만 C#에서도 알아두면 좋습니다. –