Junior — Middle
Wyjaśnij zasadę działania i strukturę biblioteki Dagger do wstrzykiwania zależności
sobes.tech AI
Odpowiedź od AI
Dagger to biblioteka do wstrzykiwania zależności (Dependency Injection, DI) w aplikacjach Android i Java. Umożliwia automatyczne dostarczanie potrzebnych obiektów (zależności) do klas, zmniejszając powiązania i upraszczając testowanie.
Zasada działania:
- Dagger używa adnotacji do opisywania zależności.
- Na etapie kompilacji generowany jest kod, który tworzy i łączy obiekty.
- Zapewnia to wysoką wydajność i brak refleksji podczas działania.
Główne komponenty:
@Module— klasa, która dostarcza zależności za pomocą metod oznaczonych@Provides.@Component— interfejs łączący moduły i punkty wstrzykiwania, tworzący graf zależności.@Inject— adnotacja wskazująca, gdzie wstrzyknąć zależność (np. w konstruktorze lub polu).
Przykład:
@Module
class NetworkModule {
@Provides
Retrofit provideRetrofit() {
return new Retrofit.Builder()
.baseUrl("https://api.example.com")
.build();
}
}
@Component(modules = NetworkModule.class)
interface AppComponent {
void inject(MainActivity activity);
}
public class MainActivity extends AppCompatActivity {
@Inject
Retrofit retrofit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
// Teraz retrofit jest gotowy do użycia
}
}
W ten sposób Dagger pomaga zarządzać zależnościami centralnie i efektywnie, poprawiając architekturę aplikacji.