Skip to content

Commit 9e6b3f2

Browse files
committed
añadido ejercicio tickets
1 parent 5001024 commit 9e6b3f2

File tree

7 files changed

+47
-0
lines changed

7 files changed

+47
-0
lines changed

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

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,4 +764,51 @@ En definitiva, con una **interfaz** el cliente no se inmuta si cambia el cómo,
764764
>
765765
>Se usan los patrones: *Adapter*, *Decorator* y *Visitor*
766766
767+
# Diferencias entre patrones
767768

769+
==Pregunta típica de examen==
770+
771+
## Decorator vs Strategy
772+
773+
- *En cuanto a su propósito*, mientras que el **Strategy** permite cambiar parte del comportamiento interno de un objeto (el contexto), delegando en otro (la estrategia, que puede ser sustituido por otra estrategia), el **Decorator** añade responsabilidades a uno o varios métodos de un objeto en tiempo de ejecución, llevando a cabo tareas adicionales antes o después de llamar al método correspondiente del objeto que decora.
774+
- *En cuanto a la forma de implementarlos*, un objeto sabe que internamente tiene una **estrategia** que lo completa sin la cual no puede funcionar, mientras que la presencia de un **decorador** es totalmente transparente al objeto que decora, envolviéndolo desde fuera.
775+
776+
### Decorador vs lista de Estrategias
777+
778+
![](img/Pasted%20image%2020241212154129.png)
779+
780+
![](img/Pasted%20image%2020241212154143.png)
781+
782+
### Ejemplo: tickets (sistema de ficheros)
783+
784+
Con un **Decorator**:
785+
786+
![](img/Pasted%20image%2020241212154222.png)
787+
788+
![](img/Pasted%20image%2020241212154337.png)
789+
790+
Con una lista de Estrategias (**Strategy**):
791+
792+
![](img/Pasted%20image%2020241212154301.png)
793+
794+
![](img/Pasted%20image%2020241212154348.png)
795+
796+
## Decorator vs Composite
797+
798+
799+
## State vs Strategy
800+
801+
- **Strategy**: es seleccionada por un agente externo o por el contexto. Una estrategia tiende a tener un único método de "*inicio*" que llama a todos los demás. Hay mucha cohesión entre los métodos de un Strategy
802+
- **State**: un State generalmente selecciona el siguiente estado de su contexto. Un estado tiende a tener muchos métodos no relacionados, por lo que hay poca cohesión entre los métodos de un State.
803+
- Los métodos del State suelen llamarse igual y tener la misma signatura que las que tenían dicho subconjunto de operaciones en el contexto
804+
805+
## Factory Method vs Abstract Factory
806+
807+
![](img/Pasted%20image%2020240603131608.png)
808+
809+
## Prototype vs Abstract Factory vs Factory Method
810+
811+
- El objeto fábrica de **Abstract Factory** produce varios objetos de varias clases, mientras que el **Prototype** hace que el objeto fábrica construya un producto copiando un objeto prototípico.
812+
- En este caso, el objeto fábrica y el prototipo son el mismo objeto, ya que el prototipo es el responsable de devolver el producto
813+
- El **Factory Method** puede requerir crear una nueva subclase simplemente para cambiar la clase del producto (dichos cambios pueden tener lugar en cascada), mientras que el **Prototype** hace que el objeto fábrica construya un producto copiando un objeto prototípico.
814+
- En este caso, el objeto fábrica y el prototipo son el mismo objeto, ya que el prototipo es el responsable de devolver el producto
176 KB
Loading
107 KB
Loading
195 KB
Loading
207 KB
Loading
67.6 KB
Loading
72.1 KB
Loading

0 commit comments

Comments
 (0)