Milyen dependency injection (DI) eszközöket használsz a termelésben?
sobes.tech MI
Válasz az MI-től
A leggyakrabban használt eszközöm a GetIt és az injectable kombinációja.
A GetIt egy egyszerű Service Locator, amely könnyen integrálható más keretrendszerekkel. Szabványos módszereket kínál a szolgáltatások regisztrálására:
// Singleton regisztrálása
GetIt.instance.registerSingleton<ApiService>(ApiService());
// Gyár regisztrálása
GetIt.instance.registerFactory<UserRepository>(() => UserRepository());
Az injectable egy kódgenerátor, amely lehetővé teszi osztályok annotálását és kód generálását a GetIt számára, jelentősen egyszerűsítve a függőség-injektálás folyamatát:
// Példa osztály annotálására a GetIt-hez injectable segítségével
@lazySingleton
class ApiService {}
// Parancs a GetIt kód generálásához
// flutter pub run build_runner build
Ezek az eszközök kombinációja lehetővé teszi, hogy kihasználjuk mind a Service Locator (a GetIt-ből), mind a Dependency Injection (az automatikus kódgenerálás révén a injectable-ből) előnyeit, így a DI a projektben kezelhetőbb és kevésbé hibára hajlamos.
Egyszerű esetekben vagy olyan projektekben is használtam, ahol már a Provider alapú állapotkezelés van alkalmazva, mivel az is szolgálhat DI-re. Azonban nagyobb vállalati alkalmazások esetén a GetIt/injectable párost részesítem előnyben.