Sobes.tech
Middle

Koje alate za ubrizgavanje zavisnosti (DI) koristite u produkciji?

sobes.tech АИ

Одговор од АИ

Najčešće koristim GetIt u kombinaciji sa injectable.

GetIt je jednostavan Service Locator koji se lako integriše sa drugim framework-ovima. Pruža standardne metode za registraciju servisa:

// Registracija singleton-a
GetIt.instance.registerSingleton<ApiService>(ApiService());

// Registracija fabrike
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());

injectable je generator koda koji omogućava anotiranje klasa i generisanje koda za GetIt, što znatno pojednostavljuje proces ubrizgavanja zavisnosti:

// Primer anotiranja klase za GetIt pomoću injectable
@lazySingleton
class ApiService {}

// Komanda za generisanje koda za GetIt
// flutter pub run build_runner build

Kombinacija ovih alata omogućava da iskoristite prednosti i Service Locator-a (iz GetIt), i Dependency Injection (zahvaljujući automatskom generisanju koda sa injectable), čime je DI u projektu lakše upravljiv i manje podložan greškama.

Takođe sam koristio Provider za jednostavne slučajeve ili u projektima gde već postoji upravljanje stanjem zasnovano na Provider, jer i on može služiti za DI. Međutim, za veće korporativne aplikacije preferiram kombinaciju GetIt/injectable.