Tengo una clase Moose con un atributo lazy_build
. El valor de ese atributo es una función de otro atributo (no perezoso).Reconstrucción de atributo de construcción lenta cuando cambia un atributo subyacente en Moose
Supongamos que alguien instancia la clase con un valor de 42 para el atributo requerido. Luego solicitan el atributo perezoso, que se calcula como una función de 42. ¡Entonces tienen el valor de cambiar el primer atributo!
El perezoso ya se ha creado, por lo que no se volverá a llamar al generador y el atributo vago ahora no está actualizado.
Tengo una solución ahora donde mantengo un indicador "sucio" en el atributo requerido, y un descriptor de acceso en el flojo comprueba el indicador sucio y lo reconstruye si es necesario.
Sin embargo, esto parece mucho trabajo. ¿Hay alguna manera de manejar esto dentro de Moose, p. usando rasgos?
Es posible que desee verificar las respuestas de cuando hice la misma pregunta: [Caducidad de los resultados en caché de los cálculos cuando cambian los valores de los atributos] (http://stackoverflow.com/questions/1775572/moose-expiring-cached-results -f-calculations-when-attribute-values-change "Caducar los resultados en caché de los cálculos cuando cambian los valores de los atributos") – clscott