



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Un resumen de los patrones de comportamiento presentados en el libro de gamma et al., ofreciendo una descripción general de cada patrón y ejemplos ilustrativos. Una herramienta útil para estudiantes que buscan una introducción concisa a los patrones de diseño de comportamiento.
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Este documento presenta un resumen de los patrones de comportamiento presentados en el libro de Gamma et al. que puede utilizarse como referencia para su estudio.
Versión 1.
L os pat rones estructurales:
e)
Permite establecer una cadena de objetos receptores a través de los cuales se pasa una etición formulada por un objeto emisor. Cualquiera de los objetos receptores puede esponder a la petición en función de un criterio establecido.
p r
Véase el ejemplo de Wikipedia
Podemos imaginar una aplicación que muestra como funciona la cadena de responsabilidad, para una empresa donde hay que pedir autorización para realizar un gasto. El que decide si se puede hacer el gasto en función de la cantidad puede ser tu jefe, el jefe de tu jefe, etc. Para na cadena: Directive Director Vicepresidente Presidente, podemos ver o resultado sería:
u ChainResponsability.java. Cuy
¿Cuanto dinero quieres gastar?
.0 requiere una reunión del equipo de dirección!
¡Tu solicitud para gastar $ ¿Cuanto dinero quieres gastar?
cantidad de $20000.
El presidente puede aprobar la ¿Cuanto dinero quieres gastar?
El Vice‐presidente puede aprobar la cantidad de $10000.
simplificar la interfaz de un contenedor, ya que éste no contendrá los métodos de rec n ejemplo típico lo tenemos en Java. El cliente solicita al contenedor un iterador. A orma de recorrer el contenedor:
orrerlo. U continuación el iterador dirige la f
Vector vec = new Vector(); ) ); “ ) );
vec.add( new String( "hola“ vec.add( new String("adios Iterator it = vec.iterator(); while ( it.hasNext() ) System.out.println( (String) it.next() );
Permite que un objeto haga de procesador central, coordinando las relaciones entre sus asociados o participantes. Permite la interacción de varios objetos, sin generar acoplamientos fuertes en esas relaciones. Todos los objetos se comunican con un mediador y es éste quién realiza la comunicación con el resto.
Podemos imaginar una aplicación de una torre de control en un aeropuerto. Los pilotos en los aviones que van llegando comunican con la torre, en vez de comunicar entre ellos. La torre decide qué avión puede despegar y aterrizan. Se puede ver la aplicación en Mediator.java
Permite almacenar el estado de un objeto (o del sistema completo) en un momento dado de manera que se pueda restaurar en ese punto de manera sencilla. Para ello se mantiene almacenado el estado del objeto durante un instante en una clase independiente de aquella a a que pertenece el objeto (pero sin romper la encapsulación), de forma que ese recuerdo icado y pueda volver a su estado anterior.
l permita que el objeto sea modif
Véase el ejemplo de Wikipedia
Imaginamos una aplicación que puede fijar el estado de un objeto y luego guardar el estado en un Memento para recuperarlo más adelante, como se puede ver en Memento.java cuyo resultado de ejecución es:
Emisor: Fijando estado a Estado Emisor: Fijando estado a Estado Emisor: Almacenando en Memento. Emisor: Fijando estado a Estado Emisor: Almacenando en Memento. Emisor: Fijando estado a Estado Emisor: Estado después de recuperación del Memento: Estado
Permite definir una dependencia del tipo uno‐a‐muchos entre objetos, de manera que cuando uno de los objetos cambia su estado, el observador se encarga de notificar este cambio a todos los otros dependientes. El objetivo de este patrón es desacoplar la clase de los objetos clientes del objeto, aumentando la modularidad del lenguaje, así como evitar bucles de actualización (espera activa o polling).
Véase el ejemplo de Wikipedia
Podemos imaginar una aplicación donde un sujeto notifica al observador cuando cambia del estado. En este caso, el cliente llama un método en el sujeto directamente, como se puede ver en Oberserver.java
Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo. or ejemplo: una alarma puede tener diferentes estados, como desactivada, activada, en terfaz Estado_Alarma y luego definimos los diferentes estados.
configuración. Definimos una in
Véase el ejemplo de Wikipedia
Podemos imaginar una aplicación sencilla que usa un poco de lógica condicional para cambiar entre estados, como se puede ver en State.java
Permite determinar cómo se debe realizar el intercambio de mensajes entre diferentes objetos para resolver una tarea. El patrón estrategia permite mantener un conjunto de lgoritmos de entre los cuales el objeto cliente puede elegir aquel que le conviene e según sus necesidades.
a intercambiarlo dinámicamente
Véase el ejemplo de Wikipedia
Podemos imaginar una aplicación que simula diferentes métodos de generación de una “frase del día” que muestre este patrón, en Strategy.java
Permite definir una estructura algorítmica en la superclase, delegando la implementación a