Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Martinez Fabian Osvaldo 17-003-0387

Guía para segundo examen de Diseño de software 2024

Patrones de diseño y principios de


diseño SOLID
1. Escribe la definición de un patrón de diseño de software.

Los patrones de diseño o design patterns, son una solución general,


reutilizable y aplicable a diferentes problemas de diseño de software. Se
trata de plantillas que identifican problemas en el sistema y proporcionan
soluciones apropiadas a problemas generales a los que se han enfrentado
los desarrolladores durante un largo periodo de tiempo, a través de prueba y
error.
2. Escribe el significado de cada de principio SOLID
SRP: The Single Responsibility Principle
El principio de responsabilidad única
OCP: "Open-Closed"
Abierto-Cerrado
LSP Liskov Substitution Principle
Principio de Sustitución de Liskov
ISP Interface Segregation Principle
Principio de Segregación de Interfaces
DIP Dependency Inversion Principle
Principio de Inversión de Dependencias

3. ¿Qué nos dice el principio de responsabilidad única?


Cada componente del sistema debe desempeñar una única responsabilidad
o tarea específica.
4. ¿Qué nos dice el principio abierto/cerrado?
Se deben poder agregar nuevas funcionalidades o extensiones al sistema sin
alterar el código existente.
5. ¿Qué nos dice el principio de Sustitución de Liskov?
Establece que los objetos de las clases derivadas deben poder ser
sustituidos por objetos de las clases base sin afectar a la integridad del
programa.
6. ¿Qué nos dice el principio de Segregación de Interfaces?
Se enfoca en la creación de interfaces específicas para los clientes, en lugar
de una única interfaz grande que contenga métodos no utilizados por todos
los clientes.
7. ¿Qué nos dice el principio de Inversión dependencias?
En lugar de que los módulos de alto nivel dependan de los de bajo nivel,
ambos deben depender de abstracciones.
Martinez Fabian Osvaldo 17-003-0387

8. Detalla cada patrón, anotando definiciones, características y aspectos importantes.


Patrón Descripción
a. Singleton a)El singleton se puede usar cuando se deben completar
tareas recurrentes (periódicas, repetidas) en una rutina
b. Fábrica
de programa.
c. Fachada Ventajas
d. Decorator – Es accesible globalmente.
– Acceso controlado a la única instancia.
e. Estrategia
– Encapsulación.
desventajas
1. High coupling.
2. SRP.
3. Concurrencia.

b) Es un patrón creacional que se utiliza para crear


objetos sin especificar la clase exacta del objeto que se
creará. En lugar de instanciar directamente un objeto con
un constructor, se utiliza un método de fábrica para crear
el objeto.
Provee un elemento creator (una interfaz o clase
abstracta) que permite encapsular la lógica de creación
de los objetos en subclases éstas deciden qué clase
instanciar. Evitas un acoplamiento fuerte entre el creador
y las clases concretas.

c) Es un patrón estructural que se utiliza en el desarrollo


de software para proporcionar una interfaz simplificada a
un conjunto más grande de funcionalidades dentro de
una clase o sistema.
Ventajas
1. Mejora la accesibilidad y la organización del código
fuente.
2. Oculta los detalles de implementación y expone solo
una interfaz simplificada y unificada.
3. DIP
4. Fomenta la modularidad.
5. SRP
Desventajas
Acoplamiento adicional.
Complejidad y dificultad para adaptarse a cambios.
Podría ser que la fachada proporcionará más funciones
de las que algún consumidor necesita

d)El patrón de diseño Decorador es un patrón estructural


que permite agregar funcionalidades adicionales a un
objeto de manera dinámica.
Permite agregar nuevas funcionalidades a las clases sin
modificar su estructura.
Martinez Fabian Osvaldo 17-003-0387

e)El patrón de diseño Estrategia es un patrón de


comportamiento que permite definir una familia de
algoritmos, encapsular cada uno de ellos y hacerlos
intercambiables. Esto permite que el algoritmo varíe
independientemente de los clientes que lo utilizan.

Contexto: Es la clase que utiliza una estrategia.


• Estrategia: Es una interfaz o clase abstracta que define
el método común para todos los algoritmos concretos.
• Estrategias Concretas: Son las clases que implementan
la interfaz de estrategia, proporcionando la
implementación específica de cada algoritmo

9. Explica qué principios SOLID cumple cada patrón de diseño que se presenta a
continuación:
Patrón Descripción
f. Fábrica
f) Principio de abierto/cerrado.
g. Fachada g) Principio de Responsabilidad Unica
h. Decorator h) Principio de Segregación de Interfaces
i) Principio de Segregación de Interfaces
i. Estrategia

10. Dibuja la estructura y explica las partes del patrón decorador.


Martinez Fabian Osvaldo 17-003-0387

-Componente. define la interfaz común que define responsabilidades que se


añaden dinámicamente.
-Componente Concreto. define un objeto al que se le pueden añadir responsabilidades.
-Decorador. Puede ser una clase abstracta o no, de la cual luego se crearán todos los
demás decoradores.
-Concrete Decorador. añade responsabilidades al componente.
-Cliente: Es la clase que utiliza el componente.
11. ¿Qué es un anti-patrón de diseño? Y da ejemplos de anti-patrones de diseño
que hayas aplicado alguna vez en tus proyectos.
Un anti-patrón de diseño es un patrón de diseño que invariablemente conduce
a una mala solución para un problema.
código espagueti, muchas líneas revueltas en mis proyectos que después no
se que hace
Acoplamiento secuencial, tenía un proyecto que necesitaba que se ejecutara
seriado por que no funcionaba todo separado
12. Explica por qué el patrón de diseño Singleton presenta problemas con los principios
SOLID.
El patrón Singleton puede violar el principio SRP al combinar dos responsabilidades
en una sola clase. Esta combinación de responsabilidades puede hacer que la clase
Singleton sea más difícil de entender, mantener y probar, ya que está abarcando
más de lo que debería según el principio SRP

También podría gustarte