Je développe une application WPF en utilisant le modèle MVVM. J'utilise MVVM Light Library et j'essaie aussi d'utiliser un injecteur de dépendances (je pense à Ninject et Unity).MVVM: Communication entre le modèle et ViewModels
J'ai lu beaucoup d'articles de blog et je suis assez confus au sujet de la façon «appropriée» de faire communiquer mes classes les unes avec les autres. En particulier, je ne sais pas quand utiliser Dependency Injection et quand me fier au pattern médiateur.
Considérons un exemple. J'ai un ViewModel, appelons-le DataViewModel, et la classe Data qui fournit un certain type de données. Comment est-il préférable de communiquer entre eux:
A. Injecter une dépendance à DataViewModel avec une interface de IData? De cette façon, les données ne devront pas dépendre de Messenger, mais elles devront fournir un événement si les données changent, et le ViewModel devra s'y abonner.
B. Fiez-vous au modèle de médiateur (implémenté dans MVVM Light as Messenger) et envoyez des messages entre Model et ViewModel? De cette façon, il ne sera pas du tout nécessaire d'utiliser l'injection de dépendances, car toute la communication sera basée sur des messages.
De plus, est-ce que mes ViewModels devraient avoir injecté des dépendances sur d'autres ViewModels, ou il vaudrait mieux se fier au Messenger? Si le premier, serait-il nécessaire de définir une interface distincte pour chaque ViewModel? Je pense que la définition d'une interface pour chaque VM sera un travail supplémentaire, mais peut-être que ça en vaut la peine.
Maintenant, je comprends ... mais j'ai eu besoin de temps pour m'habituer à l'injection de dépendance et aux services :) Merci! – madbadger