2015-11-29 31 views
12

Dagger 2 Dependency enjeksiyon sistemini anlamakta gerçekten çok zorlanıyorum.Birisi Hançer 2'nin iyi bir açıklamasını yapabilir mi?

Hançer'e bir çeşit örnek vermemiz gerektiğini bildirmek için @Inject ek açıklamasını kullanıyorum. @Module, @Component, @Provides ve nasıl uygun bağımlılık uygun örneğini sağlamak için birlikte çalışır:

Ama gibi diğer bileşenlerin çeşitli roller anlamıyorum.

Birisi basit ve anlaşılır bir şekilde açıklayabilir mi?

cevap

10

@Module: Modüller yöntemleri bağımlılıkları sağlamak sınıfları, bu yüzden, bu nedenle, Hançer nerede onları karşılamak için bağımlılıkları bulmak için bilecek bir sınıf oluşturup @Module ile açıklama sınıf örnekleri oluştururken. Modüllerin önemli bir özelliği de, 'un bölümlenecek ve birlikte oluşturulacak şekilde tasarlanmış olmalarıdır ( örneğinde, uygulamalarımızda çoklu oluşturulmuş modüllerine sahip olabileceğimizi göreceğiz).

@Component: Bileşenler temelde enjektörler vardır, en temel sorumluluğunun araya hem koymaktır @ Enjekte ve @Module arasında bir köprü, diyelim. Bunlardan herhangi eksikse Onlar sadece, size tanımlanan her türlü, örneğin, biz @Component ile bir arabirim açıklama ve bu bileşen oluşturup oluşturmadığının tüm @Modules listelemelisiniz örneklerini vermek ve derleme zamanında hata alırız. Tüm bileşenler , modülleri aracılığıyla sağladığı bağımlılıkların kapsamından haberdardır.

@Provide: İçinde modülleri biz inşa etmek ve bu belirtilen bağımlılıkları sağlamak istiyorum nasıl Hançeri söyler bu ek açıklama içeren yöntemlerini tanımlar.

Bunu okumak için tavsiye:

Sanırım anlamaya yardımcı olacak.

İlgili konular