Kādus atkarības injekcijas (DI) rīkus izmantojat ražošanā?
sobes.tech AI
Atbilde no AI
Visbiežāk izmantoju GetIt kopā ar injectable.
GetIt ir vienkāršs Pakalpojumu Meklētājs, kas viegli integrējas ar citiem ietvariem. Tas nodrošina standarta metodes pakalpojumu reģistrēšanai:
// Singleton reģistrācija
GetIt.instance.registerSingleton<ApiService>(ApiService());
// Fabrikas reģistrācija
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());
injectable ir koda ģenerators, kas ļauj anotēt klases un ģenerēt kodu GetIt, ievērojami vienkāršojot atkarību injekcijas procesu:
// Piemērs, kā anotēt klasi `GetIt` ar `injectable`
@lazySingleton
class ApiService {}
// Komanda `GetIt` koda ģenerēšanai
// flutter pub run build_runner build
Šo rīku kombinācija ļauj izmantot gan Service Locator (no GetIt), gan Dependency Injection (ar automātisku koda ģenerēšanu no injectable), padarot DI projektā pārvaldāmāku un mazāk pakļautu kļūdām.
Es arī esmu izmantojis Provider vienkāršiem gadījumiem vai projektos, kur jau ir izmantota stāvokļa pārvaldība ar Provider, jo tas arī var kalpot DI. Tomēr lielākās uzņēmuma lietojumprogrammās es dodu priekšroku GetIt/injectable pārim.