Чистый код - как сломать метод, который возвращает String - PullRequest
1 голос
/ 24 сентября 2019

У меня есть следующий метод (разделенный, потому что он был слишком длинным):

private String replacePlaceholders(IncidentFullDTO incident, String text) {
        text = replacePlaceholdersPL(incident, text);
        text = replacePlaceholdersENG(incident, text);
        text = replaceAdministratorProcessor(incident, text);
        text = replaceRateSummary(incident, text);
        return text;
    }

Каждый метод (например, replacePlaceholdersPL) возвращает новый «текст».Все эти методы очень похожи.Пример:

    private String replacePlaceholdersPL(AAA incident, String text) {
            if (text.equals(PlaceholdersEnum.CURRENT_DATE.getPlaceholder())) {
                text = text.replace(PlaceholdersEnum.CURRENT_DATE.getPlaceholder(), getCurrentDate());
            } else if (...) {
                text = text.replace(PlaceholdersEnum.DATE_TIME_START_INCIDENT.getPlaceholder(), formatDate(incident.getIncidentDate()));
} else if(...) {}
} else if(...) {}...

Как написать этот код с принципами чистого кода?Я хочу разделить этот код, чтобы не вызывать без необходимости все эти методы, такие как replacePlaceholderENG, когда предыдущий метод изменил переменную «text» ... Я получаю переменную «text» из файла docx и хочу заменить этот текст другимтекстовое значение

1 Ответ

0 голосов
/ 24 сентября 2019

Не уверен, что вы подразумеваете под принципами чистого кода, но вы можете создать класс и установить инцидент и текст в качестве переменных экземпляра.Каждый вызов функции будет иметь обновленный текст.

class PlaceHolder {

 Incident incident;
 String text;

 public PlaceHolder(Incident incident, String text){
   this.incident = incident;
   this.text = text;
 }

 public String getResult() {
   replaceA();
   replaceB();
   ....
   return this.text;
 }

 public void replaceA(){}
 ....
}
...