|
23 | 23 | Модели данных обычно представляют собой простые POJO, то есть только данные без какой-либо логики. Для упрощения все подобные модели лучше размещать в специальном пакете под названием "models" (можно подобрать более удачное название, чтобы не так созвучно было с понятием "model").<br>
|
24 | 24 |
|
25 | 25 | Структура пакетов:
|
| 26 | +``` |
| 27 | +project |
| 28 | +├─ di |
| 29 | +│ ├─ app |
| 30 | +│ ├─ payments |
| 31 | +│ └─ operation |
| 32 | +├─ presentation |
| 33 | +│ ├─ view |
| 34 | +│ │ ├─ payments |
| 35 | +│ │ │ ├─ PaymentsView |
| 36 | +│ │ │ └─ PaymentsFragment |
| 37 | +│ │ └─ operations |
| 38 | +│ │ ├─ OperationsView |
| 39 | +│ │ └─ OperationsFragment |
| 40 | +│ └─ presenter |
| 41 | +│ ├─ payments |
| 42 | +│ │ └─ PaymantsPresenter |
| 43 | +│ └─ operations |
| 44 | +│ └─ OperationsPresenter |
| 45 | +├─ domain (он же business) |
| 46 | +│ ├─ payments |
| 47 | +│ │ ├─ PaymentsInteractor |
| 48 | +│ │ ├─ PaymentsInteractorImpl |
| 49 | +│ │ └─ CurrencyHandler (вспомогательный класс для PaymentsInteractor) |
| 50 | +│ └─ operations |
| 51 | +│ ├─ OperationsInteractor |
| 52 | +│ ├─ rubs |
| 53 | +│ │ ├─ OperationsInteractorRubs |
| 54 | +│ │ └─ RubsManager (вспомогательный класс для OperationsInteractorRubs) |
| 55 | +│ └─ currency |
| 56 | +│ ├─ OperationsInteractorCurr |
| 57 | +│ └─ CurrencyManager (вспомогательный класс для OperationsInteractorCurr) |
| 58 | +├─ repositories |
| 59 | +│ ├─ payments |
| 60 | +│ │ ├─ PaymentsRepository |
| 61 | +│ │ └─ PaymentsRepositoryImpl |
| 62 | +│ └─ operations |
| 63 | +│ ├─ OperationsRepository |
| 64 | +│ └─ OperationsRepositoryImpl |
| 65 | +├─ data |
| 66 | +│ ├─ network |
| 67 | +│ └─ db |
| 68 | +└─ models (по сути хранилище всех dto) |
| 69 | + ├─ payments |
| 70 | + │ ├─ PaymentsModel |
| 71 | + └─ operations |
| 72 | + ├─ presentation |
| 73 | + │ └─ OperationUIModel |
| 74 | + ├─ domain |
| 75 | + │ ├─ OperationsRubModel |
| 76 | + │ └─ OperationCurrModel |
| 77 | + └─ data |
| 78 | + ├─ OperationsRubNetworkModel |
| 79 | + └─ OperationCurrNetworkModel |
| 80 | +``` |
26 | 81 |
|
27 |
| --di<br> |
28 |
| ----app<br> |
29 |
| ----payments<br> |
30 |
| ----operation<br> |
31 |
| --presentation<br> |
32 |
| ----view<br> |
33 |
| ------payments<br> |
34 |
| --------PaymentsView<br> |
35 |
| --------PaymentsFragment<br> |
36 |
| ------operations<br> |
37 |
| --------OperationsView<br> |
38 |
| --------OperationsFragment<br> |
39 |
| ----presenter<br> |
40 |
| ------payments<br> |
41 |
| --------PaymantsPresenter<br> |
42 |
| ------operations<br> |
43 |
| --------OperationsPresenter<br> |
44 |
| --domain (он же business)<br> |
45 |
| ----payments<br> |
46 |
| ------PaymentsInteractor<br> |
47 |
| ------PaymentsInteractorImpl<br> |
48 |
| ------CurrencyHandler (вспомогательный класс для PaymentsInteractor)<br> |
49 |
| ----operations<br> |
50 |
| ------OperationsInteractor<br> |
51 |
| --------rubs<br> |
52 |
| ----------OperationsInteractorRubs<br> |
53 |
| ----------RubsManager (вспомогательный класс для OperationsInteractorRubs)<br> |
54 |
| --------currency<br> |
55 |
| ----------OperationsInteractorCurr<br> |
56 |
| ----------CurrencyManager (вспомогательный класс для OperationsInteractorCurr)<br> |
57 |
| --repositories<br> |
58 |
| ----payments<br> |
59 |
| ------PaymentsRepository<br> |
60 |
| ------PaymentsRepositoryImpl<br> |
61 |
| ----operations<br> |
62 |
| ------OperationsRepository<br> |
63 |
| ------OperationsRepositoryImpl<br> |
64 |
| --data<br> |
65 |
| ----network<br> |
66 |
| ----db<br> |
67 |
| --models (по сути хранилище всех dto)<br> |
68 |
| ----payments<br> |
69 |
| ------PaymentsModel<br> |
70 |
| ----operations<br> |
71 |
| ------presentation<br> |
72 |
| --------OperationUIModel<br> |
73 |
| ------domain<br> |
74 |
| --------OperationsRubModel<br> |
75 |
| --------OperationCurrModel<br> |
76 |
| ------data<br> |
77 |
| --------OperationsRubNetworkModel<br> |
78 |
| --------OperationCurrNetworkModel<br> |
79 |
| - |
80 | 82 | 3. Есть несколько вариантов трактования понятия "Репозиторий". Подробно можно почитать, например, [здесь](http://hannesdorfmann.com/android/evolution-of-the-repository-pattern). В Андроид-мире "Репозиторий" - это абстракция для получения данных, то есть она скрывает, с какого именно источника получены те или иные данные. <br>
|
81 | 83 | Кроме того Репозиторий может внутри себя реализовывать логику кеширования данных и соответственно выдачи либо закешированных данных, либо данных с сети.
|
82 | 84 |
|
|
0 commit comments