214 похожих чатов

Есть проект, где код разделен по слоям: domain, data, presentation

(скрин 1)
Возникло желание вынести маппинг моделей между слоями в единую сущность - Mapper

Первый вопрос: стоит ли так делать или лучше оставить маппинг внутри самих моделей? (скрин 2)

Второй вопрос: где должен располагаться класс Mapper? (самому хочется положить его отдельно - куда-нибудь в base или utils)

10 ответов

11 просмотров
Leonid-Beliakov Автор вопроса

https://github.com/android10/Android-CleanArchitecture/tree/master/presentation/src/main/java/com/fernandocejas/android10/sample/presentation

Leonid Beliakov
screenshot

1. Если возникло желание, то стоит) 2. Можно по такому принципу: UserNetworkMapper - user.data.network, UserDatabaseMapper - user.data.database

Leonid-Beliakov Автор вопроса
Alidibir Akhbulatov
1. Если возникло желание, то стоит) 2. Можно по та...

Получается, когда у меня 4 модели: RecipeDto, RecipeEntity, Recipe (для domain) и RecipeUi То у меня получится и 3-4 маппера?

Leonid Beliakov
Получается, когда у меня 4 модели: RecipeDto, Reci...

Ну смотря сколько и куда тебе нужно маппить, если каждую модель в каждую то много)

Leonid Beliakov
Получается, когда у меня 4 модели: RecipeDto, Reci...

3 маппера, да. Я для ui-модели обычно не создаю маппер, как-то лень

> Возникло желание вынести маппинг моделей между слоями в единую сущность - Mapper борись с этим. То, как сейчас делаешь – хорошее решение

Mikhail L
> Возникло желание вынести маппинг моделей между с...

Модель data-слоя низкоуровневая и и так загружена всяким мусором - аннотациями для json, room и т.п. Можно добавить туда ещё ещё и мапперы. Однако с таким подходом может возникнуть проблема, если одну и ту же data-модель используют несколько фичей, причём разные данные из неё. Придётся делать несколько мапперов: to/fromDomainModel1(), to/fromDomainModel2(), ... Поэтому мапперы я обычно делаю в имплементации репозитория - просто приватные функции .

Pavel
Модель data-слоя низкоуровневая и и так загружена ...

тоже подойдёт. Но заводить отдельный Mapper и пытаться его ещё сделать псевдо-универсальным – путь в никуда

камон, экстеншены не часть класса

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
75
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
Обязательно ли смена методологии обучения алфавиту при смене алфавита(реформе письменности) - нет. А при смене глиненых табличек на попирус, нужно ли менять методологию обучен...
Spiker01
8
@rouse_79 а ты не знаешь простого способа определить что приложение запущено из под среды delphi?
Михаил
16
Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Карта сайта