ui нужно только 2 (id, name), name можно менять из ui. Собственно с мапом в сторону ui нет проблем, а как и где смапить обратно?
Правильным ли будет такой подход: в репозитории делаем saveModel(uiModel), внутри которого получаем актуальную серверную модельку, меняем в ней name и сохраняем на сервер?
сразу видна одна проблема в этом подходе: репозиторий не должен знать про модели UI
Обратно в репозиторий методом updateModelName(id, newName), а там уже на сервер по логике
То есть мапить прямо в презентере?
В реальном кейсе слишком много параметров, чтобы их передавать отдельно
Вам нужно маппить в Presentation и не только 2 поля, а весь объект. Обратно же Вы не 2 поля будете отправлять
если у вас презентер знает про серверные модели, то тогда можно. но лучше, чтобы репозиторий выдавал на выход и получал на вход некую доменную модель, а уже внутри себя мапил её в необходимую серверную модель, т.е. фактически это предложенный вами подход с той разницей, что модель называется иначе
создавать дополнительный тип модели только для маппинга - нарушение YAGNI, в этом случае серверная выступает вместо доменной
я думаю, раз в вопросе изначально упоминался маппинг, то всё же маппинг требуется
Да, маппинг требуется, но маппинг Network➡️View. Маппинг Network➡️Domain➡️View - избыточен
Обсуждают сегодня