viernes, 8 de julio de 2011

Patrones de Diseño **Puntos Extras**

State

Nombre del patrón:   State, también conocido como Objetcs for States.
Clasificación del patrón: Patrón de comportamiento.
Motivación: Se utiliza cando el comportamiento del objeto cambia dependiendo de su estado.
Aplicabilidad: Se utiliza en aplicaciones que tienen componentes que cambian de dinámicamente cuando son ejecutados y en aplicaciones con condiciones grandes que dependen de un objeto.

Estructura 



Participantes

Context: Define las interfaces y ayuda a mantener la instancia con el estado actual

State: Define las interfaces para la conducta asociada a un estado del Contexto.

Subclases Concrete State: Cada subclase realiza la conducta  asociada con algún estado del contexto.

Consecuencias: Encuentra la conducta dependiente del estado y divide dicha conducta en muchas formas. Las transiciones entre condiciones no residen en sentencias if o swtich, sino que se administra entre las subclases.
Hace de forma explícita las transiciones entre varios estados.

Para quelas transiciones sean más explicitas se introducen objetos separados para los estados diferentes.

Los objetos Estado se pueden compartir.

Implementación:
Al implementar el patrón State debemos saber que:
-No está definido quien está definiendo las transiciones entre estados.
-Tener alguna alternativa basada en tablas.
-Hacer y destruir objetos estados.

Patrones relacionados
Flyweight
Singleton

Referencias Bibliográficas
Design Patterns Elements of Reusable Object-Oriented Software, GoF.
http://kybele.escet.urjc.es/documentos/SI/Patrones/20_State.ppt


Iterator
Nombre del patrón: Iterator

Clasificación del patrón: De Comportamiento

Intención: Dar forma de acceso secuencial a todos los elementos de un objeto agregado sin necesidad de mostrar su representación interna.

También conocido como: Cursor

Motivación:

Proveer una forma de dar acceso a sus elementos sin mostrar su estructura interna. Lo principal del patrón es tomar la función del acceso y recorrido de la lista y ponerla dentro del objeto.

Aplicabilidad

Usamos el patrón para:
-Tener entrada a los contenidos de un objeto agregado sin mostrar su estructura interna.
- Soportar múltiples recorridos de objetos agregados.
-Dar una interfaz uniforme para recorridos en estructuras (para la iteración polimorfa).

Estructura 



Referencias
http://es.wikipedia.org/wiki/Iterador_%28patr%C3%B3n_de_dise%C3%B1o%29
Design Patterns Elements of Reusable Object-Oriented Software, GoF.
http://kybele.escet.urjc.es/documentos/SI/Patrones/13_Iterator.ppt
http://agamenon.uniandes.edu.co/~pfiguero/soo/PatronesDiseno/Iterator/Iterator.html

No hay comentarios:

Publicar un comentario