この間の関西モバイルアプリ研究会#4でLazy stored propertyについて発表しました.
Lazy stored propertyについて大まかな使いドコロと,テスタブルな設計をする際にこいつを使うと依存の注入に使いやすいのではないか,というアイディアについて話しました.
簡単にまとめると,Lazy stored propertyを使えば,初めてアクセスするときまでインスタンスの生成が遅延されるので,それまでにテストの準備ができるよねということです.
lazy
は最もすきなキーワードなのでめっちゃオススメです!
追記
Twitterで@starfruits_jさんと@matuyujiさんにimplicitly unwrapped optional
なpropertyをlazy
にしたときにnil
を代入することで再度初期化処理が走ることを教えていただきました.
こういうかんじです.
optional
の場合は再度初期化されることはありません.
ドキュメントにもこういう動作するという記載は特に見つからないので,実装の都合で動作を騙せるのかもしれません.