我有一个具有lazy_build
属性的Moose类。该属性的值是另一个(非惰性)属性的函数。在Moose中的基础属性发生变化时重建构建属性的属性
假设某人为要求的属性实例化了一个值为42的类。然后他们请求懒惰属性,这个属性被计算为42的函数。然后,他们有勇气改变第一个属性!
懒惰的一个已经被构建,所以构建器不会再被调用,并且懒惰属性现在是过时的。
我现在有一个解决方案,现在我在所需的属性上维护一个“脏”标志,并且懒惰的访问器检查脏标志并根据需要重新构建它。
但是,这似乎很多工作。有没有办法在Moose中处理这个问题,例如使用特质?
您可能想查看我提出的相同问题时的答案:[在属性值更改时计算缓存的计算结果](http://stackoverflow.com/questions/1775572/moose-expiring-cached-results -of-computation-when-attribute-values-change“当属性值改变时计算缓存结果到期”) – clscott 2010-04-28 20:30:19