You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: theory/Theory_article.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,7 +80,7 @@ project
80
80
```
81
81
82
82
3. Есть несколько вариантов трактования понятия "Репозиторий". Подробно можно почитать, например, [здесь](http://hannesdorfmann.com/android/evolution-of-the-repository-pattern). В Андроид-мире "Репозиторий" - это абстракция для получения данных, то есть она скрывает, с какого именно источника получены те или иные данные. <br>
83
-
Кроме того Репозиторий может внутри себя реализовывать логику кеширования данных и соответственно выдачи либо закешированных данных, либо данных с сети.
83
+
Кроме того Репозиторий может внутри себя реализовывать логику кэширования данных и соответственно выдачи либо закэшированных данных, либо данных с сети.
84
84
85
85
4. Дядюшка Боб говорит, что *Interactor*- это объект, реализующий *Use Case*. Более того, предлагается создавать их с помощью паттерна [Команда](https://refactoring.guru/ru/design-patterns/command). У нас же сложилась тенденция объединять различные пользовательские сценарии, связанные с одним функционалом, в отдельные классы - Use case feature facade. Вдобавок многие использует в своих проектах RxJava, и мы получаем довольно лаконичный способ описания основного функционала. Были некоторые споры о том, должны ли такие классы называться в стиле "FeatureInteractor", или "FeatureInteractors" (во множественном числе), но больше прижился первый способ наименования.
86
86
@@ -89,7 +89,7 @@ project
89
89
Чаще бывает, когда полученный результат с сервера нам нужно немного подкорректировать, и уже можно отображать на экране. Тогда на фичу будет две модели (data и domain). <br>
90
90
Ну и бывает, что по сути на каждый слой необходима своя модель (presentation, domain, data).
91
91
92
-
6. Activity, Service, BroadcastReceivers относятся ко внешнему кругу Чистой архитектуры, так как они являются частью платформы. Роли же у них могут быть разные: они могут быть и точками входа в приложение, и являться частью view, и работать в качестве источника данных. Соответсвенно, так как они относятся ко внешнему кругу, вы при необходимости можете внедрить туда и Интерактор, и Репозиторий, и другие классы из внутренних кругов.
92
+
6. Activity, Service, BroadcastReceivers относятся ко внешнему кругу Чистой архитектуры, так как они являются частью платформы. Роли же у них могут быть разные: они могут быть и точками входа в приложение, и являться частью view, и работать в качестве источника данных. Соответственно, так как они относятся ко внешнему кругу, вы при необходимости можете внедрить туда и Интерактор, и Репозиторий, и другие классы из внутренних кругов.
93
93
94
94
7. В [видео 2016 года](https://www.youtube.com/watch?v=AlxMGxs2QnM&t=2509s&list=PLb1A91j1236pH1yoUvq5YDZUWAJz1T4DF&index=4) для Интерфейса Вьюшки много методов (setName, setAccountNumber, setCardNumber, setNearestDepartments). На самом деле все эти методы можно заменить на один типа setData, и в аргументы передавать какую-то специальную модельку.
0 commit comments