属性を持つMooseクラスがありlazy_build
ます。その属性の値は、別の (非遅延) 属性の関数です。
必要な属性の値が 42 のクラスを誰かがインスタンス化したとします。次に、42 の関数として計算される lazy 属性を要求します。次に、神経質になって最初の属性を変更します。
遅延属性は既にビルドされているため、ビルダーが再度呼び出されることはなく、遅延属性は古くなっています。
必要な属性に「ダーティ」フラグを維持し、レイジー フラグのアクセサがダーティ フラグをチェックし、必要に応じて再構築するという解決策があります。
ただし、これは大変な作業のようです。トレイトを使用するなど、Moose 内でこれを処理する方法はありますか?