software reusable patterns pattern oriented gof example book design-patterns staleobjectstate

design patterns - reusable - ¿Qué es el estado rancio?



design patterns: elements of reusable object-oriented software (4)

"Estado obsoleto" es cuando la vista almacenada (en caché) de un objeto del resto del sistema queda desactualizada. Por ejemplo, un objeto tiene un identificador en algún otro objeto, pero el segundo objeto se ha eliminado mientras tanto.

Tratar de desreferir un identificador obsoleto puede llevar a grandes problemas.

La mayoría de los sistemas intentarán protegerlo automáticamente de varias razones para terminar con el estado obsoleto, pero no siempre es posible cubrir todos los casos. (Dependiendo del sistema.)

Larry

Estaba leyendo sobre el patrón de conjunto de objetos en Wikipedia ( http://en.wikipedia.org/wiki/Object_pool ) y menciona "estado peligrosamente obsoleto".

¿Qué es exactamente el estado "obsoleto"? Sé que el estado es variables / datos, como mis campos y propiedades, pero ¿qué significa obsoleto o peligrosamente obsoleto?


Básicamente, significa estado inválido. Por lo general, un subproducto de no notificar sus instancias de cambio de estado.


El estado obsoleto es información en un objeto que no refleja la realidad.

Ejemplo: los miembros de un objeto se llenan con información de una base de datos, pero los datos subyacentes en la base de datos han cambiado desde que se llenó el objeto.

El estado obsoleto peligroso es un estado obsoleto que podría afectar negativamente el funcionamiento de un programa, es decir, hacer que se ejecute incorrectamente debido a suposiciones no válidas sobre la integridad de los datos.


Ocurre cuando el valor almacenado en el objeto ya no refleja el valor persistente subyacente. Supongo que peligrosamente obsoleto es solo una forma de decir que el valor está realmente desactualizado.