Considere una aplicación normal de pedidos de clientes basada en el patrón MVC utilizando WinForms. La parte de la vista ha crecido demasiado (más de 4000 archivos) y debe dividirse en otras más pequeñas.Dependencias cíclicas
Para este ejemplo vamos a utilizar 3 proyectos para la parte de vista:
- principal - tiene dependencias a los otros 2 proyectos. Instancia los formularios con las listas.
- Clientes - tiene 2 formas - lista de clientes y detalles del cliente.
- Pedidos - tiene 2 formas - lista de pedidos y detalles del pedido.
En los detalles de los clientes forman también hay una lista de pedidos de ese cliente. La lista se recibe de OrderController por lo que no hay problemas para obtenerla. Cuando el usuario selecciona un pedido, la lista lo recibirá como guía y lo pasará como referencia al formulario Detalles del pedido.
Esto significa que necesitamos tener una referencia al Proyecto de Pedidos en el Proyecto de Clientes.(1)
Pero también en el formulario de detalles de la orden hay un enlace al cliente que hizo ese pedido. Cuando se hace clic, debe abrir el formulario Detalles del cliente.
Esto significa que necesitamos tener una referencia al proyecto de clientes en el proyecto de pedidos.(2)
A partir de (1) y (2) que tendremos dependencias cíclicas entre las órdenes y los proyectos de los clientes.
¿Cómo se puede evitar esto? Algún tipo de arquitectura de complemento? El proyecto ya está desarrollado y la mejor solución implicará el menor cambio de código posible.
¿cómo interactúan los proyectos entre sí? –