Estoy en la etapa de finalización de un gran proyecto que tiene varios componentes grandes: adquisición de imágenes, procesamiento de imágenes, almacenamiento de datos, E/S de fábrica (proyecto de automatización) y muchos otros.MVVM y evitando el objeto Monolithic God
Cada uno de estos componentes es razonablemente independiente, pero para que el proyecto se ejecute como un todo necesito al menos una instancia de cada componente. Cada componente también tiene un ViewModel and View (WPF) para supervisar el estado y cambiar cosas.
Mi pregunta es el método más seguro, más eficiente y más sostenible de instanciar todos estos objetos, suscribir una clase a un evento en otro y tener un ViewModel y una vista comunes para todo esto.
¿Será mejor si tengo una clase llamada Dios que tiene una instancia privada de todos estos objetos? He hecho esto en el pasado y lo lamenté.
¿O sería mejor si Dios dependiera de las instancias de Singleton de estos objetos para hacer rodar la pelota?
Alternativamente, debería Program.cs (o donde Main (...)) instanciar todos estos componentes, y pasarlos a Dios como parámetros y luego dejar que Él (snicker) y Su ViewModel se ocupen de los detalles de ejecución este proyectos.
Cualquier otra sugerencia que me gustaría escuchar.
¡Gracias!
He intentado todo enfoque no terciario, cada intento, salvo el último, ha fallado en cierta medida, y al final se resolvió algo muy parecido a su patrón ViewModelLocater. Estoy seguro de que los frameworks de terceros que los otros chicos publicaron me habrían ahorrado mucho trabajo, pero llegué demasiado tarde al proyecto. Esta respuesta es un buen término medio. Supongo que también has aprendido de la manera difícil. De todos modos, aquí estamos meses después, pero ¡gracias! – bufferz