Size: a a a

Android Architecture

2020 March 13

AV

Alex Vayts in Android Architecture
Он себе объявляет че ему надо для работы, и надеется, что приложение ему под видом интерфейса подсунет объект
источник

AV

Alex Vayts in Android Architecture
Всегда есть самый верхний слой, который все сводит воедино:)
источник

AV

Alex Vayts in Android Architecture
Там обычно DI, но можно много чего придумать
источник

AM

Artem Mi in Android Architecture
А кто подсунет домейну о реализации домейна?
источник

AM

Artem Mi in Android Architecture
Понятно что в домейн все через интерфейс вернётся, а домейн как узнает о дате?
источник

AV

Alex Vayts in Android Architecture
Кто создает экземпляр - тот ему все зависимости в конструктор и передает
источник

AV

Alex Vayts in Android Architecture
Artem Mi
Понятно что в домейн все через интерфейс вернётся, а домейн как узнает о дате?
Под «знанием» подразумевается импорт класса в файле. Так вот в доменный объект не может быть импортов из дата-слоя
источник

AV

Alex Vayts in Android Architecture
Но это не обозначает, что нельзя вызвать методы интерфейса репозитория, чтобы получить данные
источник

AM

Artem Mi in Android Architecture
Смотри presentation -> domain <- data
источник

AM

Artem Mi in Android Architecture
Но как домейн заставит работать дату?
источник

AM

Artem Mi in Android Architecture
С presentation понятно
источник

AM

Artem Mi in Android Architecture
А домейн дату как
источник

AM

Artem Mi in Android Architecture
Домейн ни о ком не знает
источник

AO

Artem Osipov in Android Architecture
Artem Mi
Домейн ни о ком не знает
У домена есть интерфейс
источник

AM

Artem Mi in Android Architecture
По этому интерфейсу из даты вернётся объект
источник

AM

Artem Mi in Android Architecture
А как дату дергнуть?
источник

AM

Artem Mi in Android Architecture
Имплементация даты где должна быть?
источник

AO

Artem Osipov in Android Architecture
В дате
источник

AV

Alex Vayts in Android Architecture
domain:
- interface IRepo { fun getUser(): User }
- class User(val val val)
- class UseCase(repo: IRepo) //можешь звать любой метод репы

data:
- class Repo : IRepo { ..impl.. }

presentation:
- class presenter(useCase: UseCase)

di:
- создай репозиторий
- создай юз кейс
- создай презентер
источник

AM

Artem Mi in Android Architecture
Я в слое presentation создаю экземпляр интерактора домейн, все ок, дальше в интеракторе в конструктор нужно передать интерфейс репозиторий, как быть тогда?
источник