Estoy desarrollando una aplicación WPF usando el patrón MVVM. Estoy usando la biblioteca MVVM Light y también estoy tratando de usar un inyector de dependencia (estoy considerando Ninject y Unity).MVVM: comunicación entre el modelo y ViewModels
He leído muchos artículos de blog y estoy bastante confundido sobre la forma "correcta" de hacer que mis clases se comuniquen entre sí. En particular, no sé cuándo usar Dependency Injection y cuándo confiar en el patrón del mediador.
Consideremos un ejemplo. Tengo un ViewModel, vamos a llamarlo DataViewModel, y la clase de datos que proporciona algún tipo de datos. ¿Cómo es mejor comunicarse entre ellos:
A. ¿Inyectar una dependencia a DataViewModel con una interfaz de IData? De esta manera, Data no tendrá que depender de Messenger, pero tendrá que proporcionar un evento si los datos cambian y ViewModel tendrá que suscribirse.
B. ¿Confía en el patrón del mediador (implementado en MVVM Light como Messenger) y envía mensajes entre Model y ViewModel? De esta forma, no será necesario utilizar Inyección de Dependencia, ya que toda la comunicación se basará en los mensajes.
Además, ¿deberían mis ViewModels haber inyectado dependencias en otros ViewModels, o sería mejor simplemente confiar en el Messenger? Si es el primero, ¿sería necesario definir una interfaz separada para cada ViewModel? Creo que definir una interfaz para cada máquina virtual será un trabajo adicional, pero tal vez valga la pena.
Ahora lo entiendo ... pero necesitaba un poco de tiempo para acostumbrarme a la inyección de dependencia y los servicios :) ¡Gracias! – madbadger