코드 아래에 각 조건에 대해 switch-case 문을 실행하도록 작성했습니다. 이제 switch-case 문을 제거하고이 문제를 해결하기위한 디자인 패턴을 적용하려고합니다. // 주 반복 -에 대한 모든 시트 에 대해 (항목 >> 항목 : testCaseSheetsDataMap.entrySet는()) {귀하의 경우에는Java의 스위치 케이스 문에 대한 대안이 있습니까? 어떤 좋은 디자인 패턴? switch case 문을 피하는 방법
String sheetNameKey = entry.getKey().trim();
String testCaseName = testCaseSheetMasterMap.get(sheetNameKey).trim();
List<Map<String, Object>> executableRowsList = new ArrayList<Map<String, Object>>();
executableRowsList = entry.getValue();
CitiMainAuxiliary auxiliary = new CitiMainAuxiliary();
switch (testCaseName) {
case "Anonymous Mode Log In":
auxiliary.runAllLogin(executableRowsList, testCaseName, Constants.ANONYMOUS);
break;
case "Login Mode":
auxiliary.runAllLogin(executableRowsList, testCaseName, Constants.LOGIN);
break;
case "Cookied Mode Login":
auxiliary.runAllLogin(executableRowsList, testCaseName, Constants.COOKIED);
break;
case "OBO Mode Login":
auxiliary.runAllLogin(executableRowsList, testCaseName, Constants.OBO);
break;
case "Anonymous Mode Megamenu":
auxiliary.runMegaMenu(executableRowsList, testCaseName, Constants.ANONYMOUS);
break;
case "Login Mode Megamenu":
auxiliary.runMegaMenu(executableRowsList, testCaseName, Constants.LOGIN);
break;
case "Cookied Mode Logon - Megamenu Check":
auxiliary.runMegaMenu(executableRowsList, testCaseName, Constants.COOKIED);
break;
case "OBO Logon - Megamenu Check":
auxiliary.runMegaMenu(executableRowsList, testCaseName, Constants.OBO);
break;
}
} // end-for testCaseSheetsDataMap
바꾸기 조건부 다형성으로 바꾸기를 찾고 있기 때문에 인터페이스를 사용한 구현이 더 나은 것일 수 있습니다. – chrylis
왜 '스위치'를 바꾸시겠습니까? 어떤 문제가 있습니까? – talex
Excel에서 데이터를 읽으며 때로는 내 사례 문이 Excel에서 수정 된 경우 스위치 케이스가 작동하지 않습니다. 그 때문에 교체를 원한다. – Sunil