Skip to content

Commit d9f1d61

Browse files
committed
DS corrections
1 parent 88137d7 commit d9f1d61

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

content/docs/3 Curso/Primer Semestre/DS/apuntes_para_examen_teoría.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,16 @@ Posible solución:
354354

355355
![](img/Pasted%20image%2020240602125450.png)
356356

357+
## ¿Qué quiere decir que las interfaces hacen de cortafuegos?
358+
359+
==Pregunta típica de examen==
360+
361+
En un buen diseño software, en **la raíz** de una jerarquía siempre debería situarse una interfaz ya que representan un contrato como resultado de las necesidades del cliente. A éste no le interesa el cómo (lo hace), sino el qué (deben poder hacer los objetos que implementan dicha interfaz).
362+
363+
Si no lo hiciéramos así y usásemos una clase base (abstracta o no) como raíz de la jerarquía, nos estaríamos atando a una determinada funcionalidad que ante un cambio en los requisitos lo que era común en las subclases ya no lo sea.
364+
365+
En definitiva, con una **interfaz** el cliente no se inmuta si cambia el cómo, mientras que con una **clase base**, se vería afectado ante un cambio.
366+
357367
## Síntomas de un diseño pobre
358368

359369
==Pregunta típica de examen==
@@ -616,9 +626,16 @@ Posible solución:
616626

617627
## ¿Qué es un buen diseño?
618628

629+
==Pregunta típica de examen==
630+
619631
- Un sistema está bien diseñado si:
620632
- Es fácil de comprender
633+
- Si la responsabilidad se indica claramente (nombres adecuados, se usan patrones de diseño)
621634
- Es fácil de cambiar
635+
- Hay que tener en cuenta que todo programa sufrirá cambios, y el objetivo del diseño es facilitarlos. De esta forma, *diseñar para el cambio* significa:
636+
- Sólo hay que cambiar en un único sitio (o añadiendo código nuevo -> Principio Abierto-Cerrado)
637+
- Es fácil determinar el lugar de dicho cambio
638+
- Debemos centrarnos en clases y métodos cohesivos (una única responsabilidad)
622639

623640
>[!Tip]
624641
>¡Hay que diseñar para el cambio!

content/docs/3 Curso/Primer Semestre/DS/apuntes_patrones.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,7 @@ Representa una operación sobre los elementos de una estructura de objetos. Perm
836836

837837
![](img/Pasted%20image%2020240604115531.png)
838838

839-
- Lo que se hace es simular el **despacho múltiple** (multiple dispatch)
839+
- Lo que se hace es simular el **despacho doble** (double dispatch)
840840

841841
### Aplicabilidad
842842

0 commit comments

Comments
 (0)