You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/3 Curso/Primer Semestre/DS/apuntes_para_examen_teoría.md
+47Lines changed: 47 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -764,4 +764,51 @@ En definitiva, con una **interfaz** el cliente no se inmuta si cambia el cómo,
764
764
>
765
765
>Se usan los patrones: *Adapter*, *Decorator* y *Visitor*
766
766
767
+
# Diferencias entre patrones
767
768
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
+

779
+
780
+

781
+
782
+
### Ejemplo: tickets (sistema de ficheros)
783
+
784
+
Con un **Decorator**:
785
+
786
+

787
+
788
+

789
+
790
+
Con una lista de Estrategias (**Strategy**):
791
+
792
+

793
+
794
+

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
+

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
0 commit comments