В классе я следующий выключатель случае:рефакторинг использования же включение случае многократного времени
switch(articleStep.getDeveloper()) {
case CENTRAL:
switch(articleStep.getArticleType()) {
case POSM:
//some code
break;
case PROMOTION_PACK:
//some code
break;
}
break;
case LOCAL:
//some code
break;
}
в нескольких методах. Среди них различаются только внутренние операции (//some code
).
Существует ли какой-либо альтернативный способ, посредством которого я могу поместить коммутационный футляр только одним методом, и я вызову этот метод, передав операции как параметры, и он выполнит ту же работу?
Usage-1
switch(articleStep.getDeveloper()) {
case CENTRAL:
switch(articleStep.getArticleType()) {
case POSM:
centralPOSMArticle = new AddManageArticleInDTO<ManageCentralPOSMArticleInDTO>();
centralPOSMArticle.setManageArticle(new ManageCentralPOSMArticleInDTO());
setMandetoryParameterToAddManageArticleInDTO(centralPOSMArticle);
break;
case PROMOTION_PACK:
centralPromotionPackArticle = new AddManageArticleInDTO<ManageCentralPromotionPackArticleInDTO>();
centralPromotionPackArticle.setManageArticle(new ManageCentralPromotionPackArticleInDTO());
setMandetoryParameterToAddManageArticleInDTO(centralPromotionPackArticle);
break;
}
break;
case LOCAL:
break;
}
Usage-2
switch(articleStep.getDeveloper()) {
case CENTRAL:
switch(articleStep.getArticleType()) {
case POSM:
genericDTO = centralPOSMArticle.getManageArticle();
break;
case PROMOTION_PACK:
genericDTO = centralPromotionPackArticle.getManageArticle();
break;
}
break;
case LOCAL:
break;
}
Есть общее семь место, где я использовал этот тип выключателя случае.
Зависит от того, что делает ваш '// какой-то код'. – fge
@fge Я добавил два использования коммутационного футляра, см. Обновление. –
В вашем примере, включает ли область «genericDTO» код вызова? – Bohemian