Junior — Senior
44
Рефакторинг метода формирования отчёта
Условие задачи
Метод myBusinessLogic получает объект inputData и в зависимости от его типа (CUSTOMER, NONE_CUSTOMER, VIP) формирует объект Report. Требуется переписать метод, устранив дублирование, повысив читаемость и подготовив его к дальнейшему расширению.
class SuperService {
public Report myBusinessLogic(InputData inputData) {
Report report;
if (inputData.getType().equals("CUSTOMER")) {
report = doWorkWithData(inputData);
} else if (inputData.getType().equals("NONE_CUSTOMER")) {
// 20 строк кода
report = result;
} else if (inputData.getType().equals("VIP")) {
// 40 строк кода
report = result;
}
return report;
}
}