Actividad de Patrones de Diseño: Modelo-Vista-Controlador (MVC) y Mediador en C# o Python
Descripción de la Actividad
Objetivo: Implementar los patrones de diseño Modelo-Vista-Controlador (MVC) y Mediador para desarrollar una aplicación de dibujo colaborativo en línea, que permita a múltiples usuarios interactuar y modificar un lienzo compartido en tiempo real.
Escenario
Una plataforma de dibujo colaborativo que permite a usuarios remotos unirse a sesiones de dibujo, donde pueden agregar, modificar y eliminar elementos gráficos en un lienzo compartido. La aplicación necesita gestionar efectivamente la comunicación entre los distintos componentes de la interfaz de usuario y el modelo de datos, manteniendo la sincronización entre las vistas de todos los usuarios.
Tareas
Aplicar el patrón MVC para separar la lógica del programa en tres componentes interconectados: modelo, vista y controlador.
Implementar el patrón Mediador para facilitar la comunicación entre los componentes del MVC, especialmente en un entorno colaborativo donde las actualizaciones son frecuentes y provienen de múltiples usuarios.
Desarrollar un modelo de datos que pueda gestionar elementos gráficos como formas, líneas y textos.
Crear vistas que muestren el estado actual del lienzo y permitan la interacción del usuario.
Diseñar controladores para manejar las entradas de los usuarios y actualizar tanto el modelo como la vista.
Implementación
1. Definición de Clases
Clase ModeloLienzo:
Almacena el estado del lienzo, incluyendo todas las formas y elementos gráficos.
Métodos para añadir, modificar y eliminar elementos.
Clase VistaLienzo:
Visualiza el estado actual del lienzo.
Se actualiza automáticamente cuando el modelo cambia.
Clase ControladorLienzo:
Interpreta las acciones del usuario (como clics y arrastres) y las traduce en cambios en el modelo.
Clase MediadorSesion:
Facilita la comunicación entre múltiples controladores y sus respectivas vistas en diferentes instancias del cliente.
Sincroniza el estado del modelo entre todos los usuarios conectados.
2. Lógica de Interacción
Usuarios interactúan con la VistaLienzo, que captura las entradas del usuario y las envía al ControladorLienzo.
El ControladorLienzo actualiza el ModeloLienzo basado en las acciones del usuario.
Cualquier cambio en el ModeloLienzo notifica a todas las vistas a través del patrón observador implícito en MVC.
El MediadorSesion asegura que todas las acciones se reflejen en tiempo real en todas las instancias del cliente.
3. Prueba del Sistema
Simular múltiples usuarios dibujando simultáneamente para asegurar que los cambios se sincronizan correctamente.
Verificar la capacidad de la aplicación para manejar entradas concurrentes sin perder datos.
Evaluar la interfaz de usuario para asegurar que es intuitiva y permite una interacción fluida.
Objetivo de Aprendizaje
Comprender cómo el patrón MVC organiza el software en componentes manejables y promueve la separación de responsabilidades.
Aprender a implementar el patrón Mediador para reducir la complejidad de la comunicación entre múltiples componentes, especialmente en aplicaciones colaborativas en tiempo real.
Desarrollar habilidades en la creación de aplicaciones interactivas y colaborativas que requieren coordinación efectiva entre múltiples usuarios y componentes del sistema.
Actividad de Patrones de Diseño: Modelo-Vista-Controlador (MVC) y Mediador en C# o Python
Descripción de la Actividad
Objetivo: Implementar los patrones de diseño Modelo-Vista-Controlador (MVC) y Mediador para desarrollar una aplicación de dibujo colaborativo en línea, que permita a múltiples usuarios interactuar y modificar un lienzo compartido en tiempo real.
Escenario
Una plataforma de dibujo colaborativo que permite a usuarios remotos unirse a sesiones de dibujo, donde pueden agregar, modificar y eliminar elementos gráficos en un lienzo compartido. La aplicación necesita gestionar efectivamente la comunicación entre los distintos componentes de la interfaz de usuario y el modelo de datos, manteniendo la sincronización entre las vistas de todos los usuarios.
Tareas
Implementación
1. Definición de Clases
Clase
ModeloLienzo
:Clase
VistaLienzo
:Clase
ControladorLienzo
:Clase
MediadorSesion
:2. Lógica de Interacción
VistaLienzo
, que captura las entradas del usuario y las envía alControladorLienzo
.ControladorLienzo
actualiza elModeloLienzo
basado en las acciones del usuario.ModeloLienzo
notifica a todas las vistas a través del patrón observador implícito en MVC.MediadorSesion
asegura que todas las acciones se reflejen en tiempo real en todas las instancias del cliente.3. Prueba del Sistema
Objetivo de Aprendizaje