Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semestre 2022-1
Prática 1
"Strategy y Observer"
Alumno
Torres López, Armando
316127666
Profesor
Rosa Victoria Villa Padilla
Ayudantes
Jose Ricardo Rosas Bocanegra
17 de Octubre de 2021
Prática 1
Modelado y Programación 2022-1 "Strategy y Observer"
Strategy
Estrategy nos sirve para definir una familia de algoritmos, encapsularlos y hacerlos inter-
cambiables
Permite que el algoritmo cambie sin que afecte a los clientes que lo usan
¿Cuándo usar strategy?
2. Se necesiten variantes del mismo algoritmo, que se implementan como una jerarquía
de clases
3. Un algoritmo usa datos que los clientes no tienen por qué conocer (ej. estructuras de
datos específicas del algoritmo)
1. Strategy (Compositor): define una interfaz común a los algoritmos que soporta.
3. Context (Composition):
Está configurado con un objeto ConcreteStrategy
Mantiene una referencia al objeto Strategy
Puede definir una interfaz que le permita a Strategy acceder a sus datos
Ventajas de Strategy
Desventajas de Strategy
1. El cliente es el responsable de crear estrategias, por tanto debe comprender las posi-
bilidades que ofrecen, esto es, debe ser relevante para el contexto del cliente.
Observer
El patrón Observer nos permite implementar una estrategia que reaccione a los cambios
de estado en el objeto observado.
Ventajas de Observer
La principal ventaja es que proporciona un diseño ligeramente acoplado entre los objetos que
interactúan. Esto quiere decir que los objetos no conocen mucho del otro. El observado sólo
conoce la interfaz que implementan los observadores, para agregar o quitar observadores
no hay que modificar al observado y ambas clases pueden utilizarse de manera indepen-
diente (observado y observador).
Desventajas de Observer
Desventajas: La fuga de memoria es gran y capaz que única desventaja. Esto se debe a que
para agregar o quitar observadores se tiene que hacer de manera explícita. Aunque no se
utilicen más los observadores sigue quedando la referencia para notificarlo y esto hace que
el recolector de basura no lo elimine.
Referencias
[1] http://arantxa.ii.uam.es/~eguerra/docencia/0809/07%20Strategy.pdf
[2] http://giovanni-sanchez.blogspot.com/2009/05/strategy.html
[3] https://www.seas.es/blog/informatica/patrones-de-diseno-en-java-patron-observer/
[4] https://somospnt.com/blog/155-patron-de-comportamiento-observer