Este repositorio contiene la práctica 1 del curso de Desarrollo de Software, donde se implementan y utilizan diversos patrones de diseño creacionales y estructurales en programación orientada a objetos. La práctica está dividida en varios ejercicios realizados en Java y Python, abordando diferentes patrones de diseño.
- Juan Miguel Acosta Ortega - [email protected]
- Jesús Pereira Sánchez - [email protected]
- David Serrano Domínguez - [email protected]
- Raúl Florentino Serra - [email protected]
- Ejercicio 1: Patrón Factoría Abstracta y Método Factoría en Java
- Diseño de la primera versión del código (sin hebras)
- Diseño de la versión final con hebras
- Ejercicio 2: Patrón Factoría Abstracta + Patrón Prototipo (Python)
- Ejercicio 3: Patrón Builder y Patrón Observer (Python)
- Planteamiento del problema
- Patrón Builder
- Patrón Observer
- Solución final
- Ejercicio 4: Patrón Filtro Intercepción en Python
- Ejercicio Opcional: Web Scraping (Patrón Estrategia)
En este ejercicio se utilizan los patrones Abstract Factory y Factory Method en Java. Se presenta una primera versión del código sin hebras y una versión final que incluye la implementación con hebras para permitir la ejecución simultánea y sincronizada de carreras de bicicletas.
Se implementan los patrones Abstract Factory y Prototype en Python. Se utiliza la librería threading para la creación de hebras y se añade la interfaz Prototype para clonar objetos en lugar de instanciarlos repetidamente.
Informatización de una hamburguesería utilizando los patrones Builder y Observer para la creación de hamburguesas y la notificación de pedidos listos.
Se organiza la creación de diferentes tipos de hamburguesas respetando los ingredientes y el orden de preparación.
Se implementa un sistema de notificación para mostrar los pedidos listos en una pantalla y llevar un historial de los pedidos realizados.
Combinación de los patrones Builder y Observer para resolver el problema planteado.
Diseño e implementación de un sistema de filtros en Python utilizando el patrón Interception Filter. Se crea un gestor de filtros y una cadena de filtros para gestionar diferentes operaciones.
Implementación de un sistema de Web Scraping modularizado utilizando el patrón Strategy. Se aborda la extracción de datos de sitios web de manera estructurada y flexible.
- Familiarizarse con el uso de herramientas que integren las fases de diseño e implementación de código en un marco de Orientación a Objetos (OO).
- Aprender a aplicar distintos patrones creacionales y estructurales a problemas diversos.
- Adquirir destreza en la práctica de diseño OO.
- Aprender a adaptar los patrones a las especificidades de distintos lenguajes OO.
