patron de diseño state

4
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 comportamiento al cambiar su estado interno. Motivaci´ on  Clase para representar una conexi´on de red Un objeto puede estar en diferentes estados: Es- tablecida, Escuchando, o Cerrada.  Al recibir una petici´ on, el objeto se comporta de modo distinto en base a su estado.  Posibilidades:  Extender la clase conexi´on con subclases que representen la conexi´ on en distintos estados. Problema: Los objetos tienen que cambiar din´amicamente de clase  ´ Unica clase de conexi´ on y condiciones (switch) dentro de los m´ etodos en base al estado  Soluci´ on: Introducir una clase abstracta que rep- resenta a los estados de la conexi´ on de red.  Superclase: define interfaz de los m´ etodos de- pendientes del estado  Subclases: implementan el comportamiento espec´ ıfico del estado 1

Upload: manual

Post on 18-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Patron de diseño State

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

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

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

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