¿Cómo debo pasar una referencia de un objeto a un controlador en MVC?
-
10-07-2019 - |
Pregunta
Estoy tratando de mejorar el uso de patrones de estilo MVC / MVP con mis aplicaciones WinForm y estoy luchando con algo con lo que quizás alguien con más experiencia pueda ayudarme.
A continuación se muestra mi diseño básico del proyecto:
??
La clase G2.cs
maneja la ejecución de varios subprocesos e incluye un Start / Stop y otros métodos involucrados con esos subprocesos. Es mi " principal " clase, supongo. Contiene el bucle principal para mi aplicación también.
Mi GUI se compone de 3 formularios hasta ahora y un controlador asociado para cada uno. El MainForm
tiene botones Start / Stop que necesitan llamar a métodos en mi clase G2
, así como posibles formularios futuros.
¿Cuál sería la forma correcta de pasar una referencia de mi clase G2 a todos los controladores de la vista que lo necesitan? ¿Debo pasar la referencia G2
a la Formulario cuando lo creo y el formulario a su vez lo pasa a mis Controladores o ... ¿no es una buena manera de manejar las cosas?
Además, ¿estoy en lo cierto en que es responsabilidad de las Vistas crear una instancia de su controlador y que "posee"? el controlador?
Solución
Si G2 es la clase de programa principal, y existe solo en una instancia, usaría un patrón singleton en esta clase, no es necesario pasar referencias.