Активити, Фрагменты, Частички…?

После появления фрагментов разделять код стало несколько проще.


Но что делать если код фрагментов разрастается до god-object'ов?

Я решаю проблему так:

Группирую виды по функциональности (Скажем, выбор элемента и кнопка создания нового) и выношу в отдельный класс (Условно называя его частицей), в котором резолвлю элементы и выполняю прочую грязную работу.


Но тут возникает проблема проброса вызовов колбеков от хостирующего компонента: фрагмента или непосредственно активити (скажем, после создания нового элемента, вызванного startActivityForResult, получить результат можно только в onActivityResult хостирующего компонента, и приходится пробрасывать данные в дочерний компонент).


Как решаете такую проблемы Вы?
  • Вопрос задан
  • 3475 просмотров
Пригласить эксперта
Ответы на вопрос 2
VasiliyRylov
@VasiliyRylov
Если я правильно понял проблему — то в данном случае, для передачи данных удобен паттерн Listener.
Только нужно обратить внимание, что в случае смены положения экрана или другого действия приводящего к переинициализации фрагмента — слушателей нужно задавать заново.
Но, если фрагмент существует в единственном экземпляре — слушателя определяют статичным и при рестарте фрагмента он не отваливается.
Ответ написан
ara89
@ara89
В случаях, когда кол-во таких Listener интерфейсов сильно разрастается, рекомендую Otto Event Bus
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы