Pull to refresh

Comments 6

Сразу вопрос по первому примеру. А зачем все эти вызовы worker.setService*? Мы же только что создали воркера уже передав ему все сервисы в конструктор.
Верно, переписывал код, не заметил. Конечно же, в конструкторе сервисы не передавались.
Исправлю

Довольно сложное и магическое решение для тривиальной вобщем-то фабрики, хотя и по канонам guice, но можно ли назвать такое решение хорошим, понятным, расширяемым?


Использование хэштаблицы с фабриками требует обертки для обработки ошибок, если условие создания воркеров вдруг поменяется (станет сложнее), то врядли биндер решит уже проблему и тогда придется придумывать уже что-то другое и наверное еще более сложное.


В этом случае, я бы наверное стал использовать инжектор напрямую и явно написал бы фабрику, убрал бы дополнительный параметр из конструктора воркеров и заворачивал бы полученный из инжектора воркер в декоратор который вызывал бы внутри doWork(i).

Для каждого решения применим свой подход.
Действительно, если поменяется логика создания воркеров, то нужно будет находить подход.
В целом, то, что я здесь описал — это реальный случай из жизни, просто сильно упрощенный. И именно написанный в статье подход для решения проблемы оказался оптимальным, потому что Воркеры создаются именно так и логика не поменяется.
Целью статьи было показать, что есть такие расширения, и что их можно использовать вместе. А то, что пример для их использования несколько «притянут за уши» — как по мне, это уже второстепенно

Ну вот вы как раз тот человек, который не усложняет себе жизнь, что бы потом подобными постами оправдовать свой выбор :)
Поддерживаю!

UFO just landed and posted this here
Sign up to leave a comment.

Articles