patron de diseño state
TRANSCRIPT
![Page 1: Patron de diseño State](https://reader036.vdocuments.site/reader036/viewer/2022081808/5695d0cf1a28ab9b0293f65d/html5/thumbnails/1.jpg)
7/23/2019 Patron de diseño State
http://slidepdf.com/reader/full/patron-de-diseno-state 1/4
Estado (State)
Patr´ on de Comportamiento
Prop´ osito
Permite a un objeto modificar su comportamientoal cambiar su estado interno.
Motivaci´ on
• Clase para representar una conexion de red Unobjeto puede estar en diferentes estados: Es-tablecida, Escuchando, o Cerrada.
• Al recibir una peticion, el objeto se comporta demodo distinto en base a su estado.
• Posibilidades:
◦ Extender la clase conexion con subclases querepresenten la conexion en distintos estados.
Problema: Los objetos tienen que cambiardinamicamente de clase
◦ Unica clase de conexion y condiciones (switch)dentro de los metodos en base al estado
• Solucion: Introducir una clase abstracta que rep-
resenta a los estados de la conexion de red.◦ Superclase: define interfaz de los metodos de-
pendientes del estado
◦ Subclases: implementan el comportamientoespecıfico del estado
1
![Page 2: Patron de diseño State](https://reader036.vdocuments.site/reader036/viewer/2022081808/5695d0cf1a28ab9b0293f65d/html5/thumbnails/2.jpg)
7/23/2019 Patron de diseño State
http://slidepdf.com/reader/full/patron-de-diseno-state 2/4
Motivacion (cont.)
• La clase conexion mantiene una referencia a unobjeto estado en el que delega todo el compor-tamiento especıfico de dicho estado.
Aplicabilidad
• El comportamiento de un objeto depende de suestado, y dicho estado puede cambiar en tiempode ejecucion.
Estructura
2
![Page 3: Patron de diseño State](https://reader036.vdocuments.site/reader036/viewer/2022081808/5695d0cf1a28ab9b0293f65d/html5/thumbnails/3.jpg)
7/23/2019 Patron de diseño State
http://slidepdf.com/reader/full/patron-de-diseno-state 3/4
Participantes
•
Contexto (Context)Define la interfaz para los clientes
Mantiene una instancia de un estado concretoque define el estado actual del objeto contexto
• Estado (State)
Define una interfaz para encapsular el compor-tamiento asociado con un estado particular del
contexto• Estados Concretos (ConcreteStatei)
Cada subclase implementa el comportamientoasociado con un estado del contexto
Colaboraciones
• El contexto delega las partes de comportamien-to especıficos del estado al objeto ConcreteStatei
• El contexto puede pasarse a sı mismo como ar-gumento al objeto estado. De esta forma, elobjeto estado puede acceder a informacion delcontexto.
• La configuracion de un contexto la puede rea-lizar un cliente con objetos estado
• Los clientes utilizan el contexto como interfaz,sin necesidad de manejar objetos estado direc-tamente
• Tanto el contexto como los estados concretospueden decidir cambiar el estado actual
3
![Page 4: Patron de diseño State](https://reader036.vdocuments.site/reader036/viewer/2022081808/5695d0cf1a28ab9b0293f65d/html5/thumbnails/4.jpg)
7/23/2019 Patron de diseño State
http://slidepdf.com/reader/full/patron-de-diseno-state 4/4
Consecuencias
• Localiza y separa el comportamiento especıficode cada estado
◦ Facilita anadir nuevos estados y transiciones
◦ ... pero es menos compacto (clases ↑)
• Hace explıcitas las transiciones entre estados
• Bajo ciertas circunstancias, es posible la com-particion de objetos estado
Implementaci´ on
• Responsabilidad de efectuar transicion entre es-tados
• Creacion y destruccion de objetos estado
◦ Crear y destruir cada vez que es necesario
◦ Crear al principio y no destruir
• Herencia dinamica
4