Skip to content

Instantly share code, notes, and snippets.

@IoTeacher
Created May 26, 2024 19:01
Show Gist options
  • Save IoTeacher/29faba5e1db2a1319aaea259cebe6c20 to your computer and use it in GitHub Desktop.
Save IoTeacher/29faba5e1db2a1319aaea259cebe6c20 to your computer and use it in GitHub Desktop.
Patrones de Diseño ejercicios del tema

Lista de Ejercicios para la Ruleta Rusa de Actividades en .NET Core

Ejercicios con Patrones Simples

  1. Patrón Singleton: Implementa un singleton que gestione la configuración global de una aplicación.
  2. Patrón Factory Method: Crea una fábrica para diferentes tipos de notificaciones (email, SMS, push).
  3. Patrón Abstract Factory: Diseña una fábrica abstracta que produzca conjuntos de widgets para diferentes sistemas operativos (Windows, Mac, Linux).
  4. Patrón Builder: Implementa un constructor para una clase Meal que permita la creación de diferentes combinaciones de comidas.
  5. Patrón Prototype: Implementa la clonación de objetos de un catálogo de productos.
  6. Patrón Adapter: Crea un adaptador para integrar un sistema de pagos externo en tu aplicación.
  7. Patrón Decorator: Diseña decoradores para agregar funcionalidades adicionales a una clase Document (e.g., cifrado, compresión).
  8. Patrón Facade: Implementa una fachada para simplificar la interacción con un sistema de gestión de bases de datos.
  9. Patrón Flyweight: Optimiza la gestión de un conjunto de objetos gráficos que se repiten (e.g., árboles en un bosque).
  10. Patrón Proxy: Implementa un proxy para controlar el acceso a un servicio remoto.
  11. Patrón Chain of Responsibility: Diseña una cadena de manejadores para procesar diferentes niveles de soporte técnico.
  12. Patrón Command: Implementa comandos para un editor de texto (e.g., copiar, pegar, deshacer).
  13. Patrón Interpreter: Crea un intérprete para evaluar expresiones matemáticas simples.
  14. Patrón Iterator: Implementa un iterador personalizado para recorrer una colección de objetos complejos.
  15. Patrón Mediator: Diseña un mediador para gestionar la comunicación entre componentes de una interfaz de usuario.
  16. Patrón Memento: Implementa un sistema de guardado y restauración de estados para un juego.
  17. Patrón Observer: Crea un sistema de notificaciones para cambios en los datos de una aplicación.
  18. Patrón State: Implementa diferentes estados para un objeto Order (e.g., pendiente, procesada, enviada).
  19. Patrón Strategy: Diseña estrategias para diferentes algoritmos de búsqueda en una lista.
  20. Patrón Template Method: Crea un método plantilla para el procesamiento de archivos de diferentes formatos.
  21. Patrón Visitor: Implementa visitantes para realizar operaciones en una estructura de objetos de geometría (e.g., calcular área, perímetro).

Ejercicios con Patrones Combinados

  1. Composite + Iterator: Diseña una estructura de menús anidados que pueda ser recorrida con un iterador.
  2. Facade + Singleton: Crea una fachada para un sistema de configuración que sea gestionada por un singleton.
  3. Command + Memento: Implementa un editor de texto que utilice comandos para las operaciones y memento para deshacer/rehacer.
  4. Observer + Mediator: Diseña un sistema de chat donde los mensajes se distribuyan a través de un mediador y los usuarios sean observadores.
  5. Decorator + Strategy: Implementa un sistema de personalización de vehículos donde los decoradores añadan características y las estrategias manejen el cálculo del costo.
  6. Factory Method + Prototype: Crea una fábrica de clonación para personajes de un juego.
  7. Abstract Factory + Adapter: Diseña una fábrica abstracta para crear conectores de bases de datos que utilicen adaptadores para diferentes motores.
  8. Builder + Facade: Implementa un sistema de generación de informes que utilice un constructor para configurar el informe y una fachada para generar el archivo final.
  9. Flyweight + Composite: Optimiza la gestión de gráficos de un bosque utilizando objetos Tree compartidos (flyweight) y compuestos.
  10. Proxy + Command: Diseña un sistema de control de acceso donde el proxy maneje la autenticación y autorización de comandos.
  11. Chain of Responsibility + Decorator: Implementa una cadena de filtros de seguridad que decoren una solicitud antes de procesarla.
  12. State + Strategy: Diseña un objeto Player en un juego que utilice diferentes estrategias de movimiento dependiendo de su estado.
  13. Template Method + Observer: Crea un sistema de procesamiento de pedidos donde los cambios se notifiquen a los observadores.
  14. Visitor + Composite: Implementa un sistema de operaciones matemáticas en una estructura de expresión compuesta, donde los visitantes realizan las evaluaciones.
  15. Interpreter + Flyweight: Diseña un intérprete para un lenguaje de gráficos vectoriales, utilizando flyweight para compartir objetos gráficos.
  16. Memento + State: Implementa un sistema de guardado de progreso para un juego con diferentes estados de nivel.
  17. Mediator + Command: Diseña una aplicación de interfaz gráfica donde el mediador gestiona los comandos de los controles.
  18. Adapter + Proxy: Crea un adaptador para una API externa que utilice un proxy para el manejo de caché.
  19. Factory Method + Singleton: Implementa una fábrica para la creación de instancias de una clase Logger que sea singleton.
  20. Builder + Prototype: Diseña un sistema de creación de documentos que utilice un constructor para definir el contenido y prototipos para clonarlo.
  21. Abstract Factory + Builder: Implementa una fábrica abstracta que produzca diferentes tipos de construcciones (e.g., casas, puentes) utilizando el patrón builder.
  22. Command + Observer: Crea un sistema de gestión de tareas donde los comandos notifiquen a los observadores de los cambios.
  23. Chain of Responsibility + Command + Singleton: Diseña un sistema de procesamiento de solicitudes donde una cadena de comandos maneje las solicitudes, gestionada por un singleton.

Puedes copiar y pegar este contenido en tu GitHub Gist para que los estudiantes puedan acceder a la lista de ejercicios.

@IoTeacher
Copy link
Author

githumascot2

@IoTeacher
Copy link
Author

IoTeacher commented May 26, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment