最近、SubCut から Scaldi に切り替えましたが、文書化されていない/不足している機能があります。
SubCut では、バインディングを定義するときに、さまざまなバインディング モード( toSingle
、toProvider
、to moduleInstanceOf
、 )から選択できますtoModuleSingle
。これらは、注入されたインスタンスを 1 回作成するか、バインドを実行するたびに作成するかを決定します。Scaldi のドキュメントで明示的に定義されている類似の動作が見当たらないので、Scaldi でさまざまな動作を実現する方法を理解していることを確認したいと思います。
デフォルトでは、to
メソッドは遅延しており、最初に「要求」されたときに注入されたインスタンスを作成します。初めて「リクエスト」される前でも、インスタンスを作成すると思われるAPItoNonLazy
がAPIにあります。そして、次の例では...toProvider
bind [Widget] toProvider new ParticularWidget()
ParticularWidget
...に注入されるたびに新しいを作成しますInjectable
。
私はこれを正しく理解していますか?