ANDROID_LIVE Telegram 297
​​Binds vs Provides в Dagger 2
#разработка

Какая разница между Binds и Provides в Dagger 2? Это один из самых частых вопросов на собеседованиях, связанных с Dagger 2. И мне бы хотелось попробовать дать вам более-менее полное объяснение, которое я нашел и использую при ответе.

Первое отличие заключается в том, каким образом каждая из них «предоставляет» зависимости.
Provides может содержать в своем методе больше, чем один параметр, и возвращает реализацию того элемента, который нам нужен.
Binds же может принимать только один параметр, причем этот параметр — реализация того класса, который нам нужен, а возвращаемым параметром является интерфейс данного класса.
Кроме того, можно добавить, что с Provides используется обычный метод, а с Binds — абстрактный.

Вторым отличием является количество генерируемого кода в проекте.
Если посмотреть на то, что генерируется при добавлении этой аннотации, то видно добавление MyModule_GetInjectClassFactory , которой нет при использовании Binds, но есть при добавлении Provides.

Подробнее про сравнение этих двух аннотаций можно почитать в этой статье.

Есть ли еще какие-то отличия?
Будет здорово, если вы добавите их в комментариях.



tgoop.com/android_live/297
Create:
Last Update:

​​Binds vs Provides в Dagger 2
#разработка

Какая разница между Binds и Provides в Dagger 2? Это один из самых частых вопросов на собеседованиях, связанных с Dagger 2. И мне бы хотелось попробовать дать вам более-менее полное объяснение, которое я нашел и использую при ответе.

Первое отличие заключается в том, каким образом каждая из них «предоставляет» зависимости.
Provides может содержать в своем методе больше, чем один параметр, и возвращает реализацию того элемента, который нам нужен.
Binds же может принимать только один параметр, причем этот параметр — реализация того класса, который нам нужен, а возвращаемым параметром является интерфейс данного класса.
Кроме того, можно добавить, что с Provides используется обычный метод, а с Binds — абстрактный.

Вторым отличием является количество генерируемого кода в проекте.
Если посмотреть на то, что генерируется при добавлении этой аннотации, то видно добавление MyModule_GetInjectClassFactory , которой нет при использовании Binds, но есть при добавлении Provides.

Подробнее про сравнение этих двух аннотаций можно почитать в этой статье.

Есть ли еще какие-то отличия?
Будет здорово, если вы добавите их в комментариях.

BY Android Live 🤖




Share with your friend now:
tgoop.com/android_live/297

View MORE
Open in Telegram


Telegram News

Date: |

The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. How to create a business channel on Telegram? (Tutorial) To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. Concise
from us


Telegram Android Live 🤖
FROM American