viernes, 18 de enero de 2008

Stateful and Stateless (con estado y sin estado )

En el diseño OOP podemos distinguir entre los objetos con [mantenimiento de] estado y sin [mantenimiento de] estado.
El estado se refiere al estado de la información, y la información recaería en las propiedades de nuestros objetos.

En el siguiente ejemplo, creamos un nuevo objeto de la clase Color, y a continuación le asignamos el valor "verde". Este objeto (Stateful) mantiene la información del valor de color en la variable "valor".


public class Color{
String valor;
}

Color color1=new Color();
color1.valor="verde";


Sin embargo en el ejemplo a continuación se muestra un objeto (Stateless) sin estado, es decir no mantiene ninguna información en sus propiedades o atributos, de hecho no tiene propiedades o atributos, únicamente métodos



public class ServicioPintura{
public void cambiaColor(Mesa mesa, Color color){
mesa.setColor(color);
}
}


Los objetos con estado[Stateful] suelen estar relacionados con los objetos que maneja el usuario del programa, y suelen mantener las decisiones(opciones) del usuario durante un proceso o una sesión de uso. Ejemplos de mantenimiento de estado:
  • los diferentes pasos a seguir para registrarse en una página web
  • un carrito de compra
Los objetos sin estado[Stateless ] (generalmente llamados servicios) únicamente operan con los objetos pero no mantienen el estado de los procesos o resultados que generan. Ejemplos de objetos sin estado:
  • petición RSS
  • web services
  • Todos los servicios que veremos en el curso y como el anterior ejemplo: ServicioPintura

1 comentario:

Wil dijo...

cool, este artículo me ayudo a entender lo que es stateful y stateless.

Muchas graciaas!