2010-10-15 13 views
5

Estoy viendo esta conferencia (http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl) y en aproximadamente 34 minutos, se menciona una viñeta en una diapositiva que indica "documentar el espacio de estado con mucho cuidado".¿Qué es el espacio de estado?

¿Qué es el espacio de estado? ¿Por qué tendría que documentarlo "muy cuidadosamente"? Desafortunadamente, no tengo sonido en la máquina desde la que estoy publicando ahora, pero las diapositivas en sí son extremadamente útiles para mi aprendizaje (sería aún más útil CON el sonido).

Gracias

Respuesta

4

Un espacio de estado es el conjunto de estados posibles, en este caso de un objeto.

En el audio, básicamente dice que necesita documentar qué operaciones están permitidas en qué estados, y si alguna operación cambia el estado del objeto (lo que cambiaría el conjunto de operaciones permitidas). Él menciona que esto es especialmente importante para objetos mutables.

Utiliza fecha y calendario de Java como ejemplos de API donde esto es un problema, pero no entra en detalles.

Para dar un ejemplo concreto (pero simplificado), considere una conexión TCP. Eso básicamente tendría dos estados, abierto o cerrado. Cuando está cerrado, no puede enviar ni recibir nada a través de él, por lo que las llamadas a esos métodos no están permitidas.

+0

+1 por la buena respuesta. Un gran "espacio de estado" me hace doler la cabeza. Es por eso que prefiero objetos más inmutables y diseños más simples. –

1

Parafraseando lo que dice el hablante, si el objeto es mutable, necesita documentar el espacio de estado. A continuación, hace referencia a la API de fecha y calendario de Java que está mal documentada en este sentido.

Supongo que lo que quiere decir es que necesita documentar cualquier función que pueda modificar el estado del código. También cuando es un buen (o malo) tiempo para llamar a estas funciones. Ejemplo, llamando a una función read() después de que el objeto sea closed().

Cuestiones relacionadas