Ресурсы / Контекст приложения в Presenter (архитектура MVP) - PullRequest
0 голосов
/ 15 октября 2018

Мне нужно отсортировать список, используя Comparator, который зависит от Resources.Список (данные) загружается из хранилища (уровень модели).Как я могу это сделать, если у докладчика не должно быть доступа к Context?Стоит ли вводить уже созданный Comparator?

new ProductsPresenter(new ProductsRepository(), productsFragment, new ProductsComparator(context))

(prodcutsFragment является слоем View)

  1. Это правильно?
  2. Что если Presenter необходимо использовать больше Context зависимых классов?Если я добавлю их все, у конструктора будет много параметров.

Здесь - это код из чертежей Android, где, например, я хотел бы добавить сортировку спискаComparator зависит от ресурсов.

1 Ответ

0 голосов
/ 15 октября 2018

1 - Это правильно.Улучшение будет заключаться в использовании некоторой библиотеки зависимостей, такой как Dagger, для непосредственного внедрения экземпляров, так что вам не нужно писать new в конструкторе

2 - IMHO, лучший способ - это инъецировать классынапрямую, без Context, чтобы ваш Presenter был отделен от Android SDK, чтобы вам было проще его протестировать

...