Sobes.tech
Junior — Middle

Vysvetlite koncept injektáže závislostí a jej úlohu vo vývoji softvéru.

sobes.tech AI

Odpoveď od AI

Vstrekovanie závislostí (Dependency Injection, DI) je návrhový vzor, pri ktorom objekty získavajú svoje závislosti zvonku, namiesto toho, aby si ich samy vytvárali. To podporuje slabé prepojenie medzi komponentmi a uľahčuje testovanie.

V kontexte Flutter pomáha DI spravovať stav a služby, uľahčuje výmenu implementácií a opätovné použitie kódu.

Príklad: namiesto vytvárania inštancie služby vnútri widgetu, je služba odovzdaná cez konštruktor alebo cez poskytovateľa (napríklad pomocou balíka provider alebo get_it).

class ApiService {
  void fetchData() {
    // ...
  }
}

class MyWidget extends StatelessWidget {
  final ApiService apiService;

  MyWidget({required this.apiService});

  @override
  Widget build(BuildContext context) {
    apiService.fetchData();
    return Container();
  }
}

// Na mieste vytvorenia widgetu
final apiService = ApiService();
MyWidget(apiService: apiService);

Týmto spôsobom DI zvyšuje modularitu, uľahčuje výmenu a testovanie komponentov.