Использую(на сколько себе ее представляю) Mvp и чистую арх.Загвоздка в следующем, в data слое есть репозиторий который получает http_clenta(retrofit) и идёт в сеть получает данные в формате JSON
я в репозитории делаю сперва парсинг данных из jsona в pojo а потом и конвертирую этот pojo под нужную мне модель для domain слоя
Код выгледит так
@Override
public Observable<AuthorizationModel> sendMail(String mail) {
return httpClient.getHttpClient().create(AuthorizationServiceApi.class)
.sendMail(UniqueUtils.getMacAddr(), mail)
.flatMap(authrozationParser::parseAuthorizationDate)
.flatMap(serverResponseMapper::transofrmToAuthorizationModel)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
где нужно делать парсинг ? я делаю в репозитории.Но чую ой не правильно
DataLayer Архитектура его мб разной. Могу посоветовать не волноваться, по таким вопросам, пока действительно станет неудобно использовать Репозитории. Ваш пример нормальный, а если вас волнует как отделить парсер, могу посоветовать разделять data, ведь парсить можно локальные данные (raw, files), удаленные данные, системные и тд. Те в вашем случае authrozationParser мог быть remoteData тогда у Репозитория может быть доступ к Remote и выглядило бы это примерно так:
.flatMap(remoteData::parseAuthorizationDate)
ваш репозиторий тогда облегчиться и ему будет проще выполнять предназначенную роль DataMapper, а из репозиториев уедет копипаста
Сборка персонального компьютера от Artline: умный выбор для современных пользователей