Bonjour à tous,
J’essaye de mettre en pratique toute les connaissances que j’engrange au fur et à mesure
Ma situation est la suivante: je souhaite pratiquer l’injection de dépendance avec Provider, tout en respectant les principes de séparation en clean archi
Voici le main.dart
@override
Widget build(BuildContext context) {
return CupertinoApp(
home: CupertinoPageScaffold(
child: MultiProvider(
provider: [
Provider<SectionsService>(create: (_) => SectionsService(HTTPClient())),
ProxyProvider<SectionsService, SectionsRepository>(
update: (_, service, __) => SectionsRepository(service)),
ProxyProvider<SectionsRepository, SectionsUseCase>(
update: (_, repository, __) => SectionsUseCase(repository)),
ProxyProvider<SectionsUseCase, SectionsViewModel>(
update: (_, sectionsUseCase, __) =>
SectionsViewModel(sectionsUseCase))]
)
ici on a le sections_viewmodel.dart
class SectionsViewModel extends ChangeNotifier {
final SectionsUseCase _sectionsUseCase;
SectionsViewModel(this._sectionsUseCase);
}
et pour finir, voici le sections_view.dart:
class SectionsView extends StatefulWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => SectionsViewModel(
Provider.of<SectionsUseCase>(context, listen: false)),
child: Consumer<SectionsViewModel>(
builder: (context, viewModel, child) {
return Center(child: Text(viewModel.value)
})));}
}
sauf que dans mon sections_view.dart, je fais appel au use case, or la view ne doit pas être au courant d’autre chose que du viewmodel, donc comment créer les dépendances du viewmodel en dehors de la view ?
merci pour votre aide