普通にオブジェクト指向で作ると遅延評価はgetterで作れるから
getterとpublic変数の違いを考えればよい
「getterはメモリを食う」「public変数は速い」と言ったら何と言い返されるか考える