Skip to content

JuanmiAcosta/Desarrollo_De_Software

Repository files navigation

Uso de Patrones de Diseño Creacionales y Estructurales en OO

Descripción

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.

Autores

Índice

  1. 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
  2. Ejercicio 2: Patrón Factoría Abstracta + Patrón Prototipo (Python)
  3. Ejercicio 3: Patrón Builder y Patrón Observer (Python)
    • Planteamiento del problema
    • Patrón Builder
    • Patrón Observer
    • Solución final
  4. Ejercicio 4: Patrón Filtro Intercepción en Python
  5. Ejercicio Opcional: Web Scraping (Patrón Estrategia)

Ejercicio 1: Patrón Factoría Abstracta y Método Factoría en Java

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.

Ejercicio 2: Patrón Factoría Abstracta + Patrón Prototipo (Python)

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.

Ejercicio 3: Patrón Builder y Patrón Observer (Python)

Planteamiento del problema

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.

Patrón Builder

Se organiza la creación de diferentes tipos de hamburguesas respetando los ingredientes y el orden de preparación.

Patrón Observer

Se implementa un sistema de notificación para mostrar los pedidos listos en una pantalla y llevar un historial de los pedidos realizados.

Solución final

Combinación de los patrones Builder y Observer para resolver el problema planteado.

Ejercicio 4: Patrón Filtro Intercepción en Python

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.

Ejercicio Opcional: Web Scraping (Patrón Estrategia)

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.

Objetivos

  1. 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).
  2. Aprender a aplicar distintos patrones creacionales y estructurales a problemas diversos.
  3. Adquirir destreza en la práctica de diseño OO.
  4. Aprender a adaptar los patrones a las especificidades de distintos lenguajes OO.

Las siguientes prácticas sirvieron para familiarizarnos con los diferentes tipos de mantenimiento a realizar, con la realización de test y la separación entre frontend y backend usando la arquitectura API REST.

Imagen representativa

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •