Dagger 2
#разработка #статьи
Мне кажется, что про библиотеку Dagger 2 слышал каждый Android-разработчик. Тема заезжанная, есть много статей для быстрого старта, но мне хочется собрать их вместе и помочь начинающим разработчикам в изучении этой библиотеки, чтобы они могли стать чуть лучше в программировании.
Dagger 2 — библиотека, которая позволяет реализовать паттерн Dependency Injection. Этот паттерн снижает зависимость объектов друг от друга, а также уменьшает время написания кода. Отличный цикл статей для новичков есть тут. В этих статьях вы найдете много примеров, которые объясняют, для чего нужен Dagger.
В одной из статей прочел пример из реальной жизни, который примерно описывает то, что делает Dagger.
Представьте операционную, где выполняется многочасовая операция. При этом процессе присутствуют хирург и помощник. Хирург занят тем, что оперирует пациента, и ему постоянно необходимо получать разные инструменты: зажимы, скальпели. Он просит помощника подать скальпель. Помощник сам знает, где ему взять этот инструмент, на какой полке он лежит. Хирург же занят своей зоной ответственности — операция, и он отвечает только за это. Зона ответственности помощника — это предоставление всех инструментов, которые могут понадобиться хирургу.
Примерно по такому же принципу и работает паттерн Dependency Injection. Dagger выполняет роль помощника, а наше приложение — хирург, который делает операцию.
Второй цикл статей, который помог мне в освоении этой библиотеки можно найти тут.
На самом деле, вначале может показаться, что библиотека сложная. Такое чувство возникает из-за кода, который генерирует Dagger. Но если немного разобраться в принципах построения графа и почитать этот код, то все встает на свои места.
#разработка #статьи
Мне кажется, что про библиотеку Dagger 2 слышал каждый Android-разработчик. Тема заезжанная, есть много статей для быстрого старта, но мне хочется собрать их вместе и помочь начинающим разработчикам в изучении этой библиотеки, чтобы они могли стать чуть лучше в программировании.
Dagger 2 — библиотека, которая позволяет реализовать паттерн Dependency Injection. Этот паттерн снижает зависимость объектов друг от друга, а также уменьшает время написания кода. Отличный цикл статей для новичков есть тут. В этих статьях вы найдете много примеров, которые объясняют, для чего нужен Dagger.
В одной из статей прочел пример из реальной жизни, который примерно описывает то, что делает Dagger.
Представьте операционную, где выполняется многочасовая операция. При этом процессе присутствуют хирург и помощник. Хирург занят тем, что оперирует пациента, и ему постоянно необходимо получать разные инструменты: зажимы, скальпели. Он просит помощника подать скальпель. Помощник сам знает, где ему взять этот инструмент, на какой полке он лежит. Хирург же занят своей зоной ответственности — операция, и он отвечает только за это. Зона ответственности помощника — это предоставление всех инструментов, которые могут понадобиться хирургу.
Примерно по такому же принципу и работает паттерн Dependency Injection. Dagger выполняет роль помощника, а наше приложение — хирург, который делает операцию.
Второй цикл статей, который помог мне в освоении этой библиотеки можно найти тут.
На самом деле, вначале может показаться, что библиотека сложная. Такое чувство возникает из-за кода, который генерирует Dagger. Но если немного разобраться в принципах построения графа и почитать этот код, то все встает на свои места.