タグ

DIとZenjectに関するedo_m18のブックマーク (4)

  • Zenject Decorator Binding - imog

    ZenjectにはDecoratorパターンをサポートするDecorator Bindingなる機能があったりします。あんまりメインで使うような機能ではありませんが覚えておくと便利かもしれません。 github.com Decorator パターン DecoratorパターンはGoFで定義されてるデザインパターンの一つです。既存のオブジェクトに対して動的な機能追加を行う場合などに効果を発揮します。 例えば超絶シンプルなRPGを作るときに、攻撃力とHPを持つクラスがあるとします。ステータス部分は共通のインタフェースとして、戦士と魔法使いの二種類を作ります。 public interface IStatus { int Life { get; } int Attack { get; } } public class Knight : IStatus { public int Life => 2

    Zenject Decorator Binding - imog
  • Zenject (Extenject) の FromSubContainerResolve() 完全に理解した。 - もんりぃ is undefined.

    はじめに 完全に狙ってるタイトルですが、深夜のテンションってコトでご容赦を。 この記事は、「何か分からんけど、Kernel 系のインタフェース( IInitializable とか ITickable とか IDisposable とか)が上手く動かないコトが多い Zenject (Extenject) の SubContainer」を良い感じに制御できるようになったので、それの備忘録として残すものであります。 同じ様な悩みを持つ方の一助となれば幸いです。 TL; DR .ByInstaller() とか .ByMethod() の代わりに .ByNewGameObjectInstaller() とか .ByNewGameObjectMethod() を使えば OK です。 何の話し? Zenject (Extenject) をちゃんと使っていると、よく出てくるのが「外側の Context

    Zenject (Extenject) の FromSubContainerResolve() 完全に理解した。 - もんりぃ is undefined.
  • Zenjectを使うときに気を付けていること - imog

    このエントリはUnity Advent Calendar 20194日目のやつです。 Zenjectは便利ですが、実際に扱っている人の知見やtipsがまだまだ世に出回ってない印象です。APIの使用方法も欲しいですが実際に使ってる人たちがどういうお気持ちで使っているのかというのはどんどん出回って欲しいので、今回は僕がZenjectを使う際にチョットだけ気を付けていることを列挙します。 そんなにテクニカルなことではなく心持ちみたいなのが多めです。 これが正しい!というのは中々決められないと思うので、1つの考え方として参考になれば幸いです。 基的にコンストラクタインジェクションを行う intefaceをBindする primitiveな型をBindしない ListをBindしない 手動でもDIできるようにする Validateを使う DiContainerを持ち歩かない 積極的にSubCont

    Zenjectを使うときに気を付けていること - imog
    edo_m18
    edo_m18 2019/12/07
    良記事。Zenject完全に理解したい。
  • ZenjectのConstructionMethodたち - imog

    ZenjectでBindするとき、そのインスタンスをどのように用意するかという設定が必要です。その場で初期化するのか、既存のインスタンスを引っ張ってくるのかなど。これらはコンストラクションメソッドと呼ばれており、READMEに全部書かれています。 github.com 割と数が多いのでまとめてみました。間違っているものがあればコメントなどもらえるとありがたいです。 FromNew() FromInstance(T instance) FromMethod(Func<T> method) FromMethod(Func<InjectContext, T> method) FromMethodMultiple(Func<IEnumerable<T>> method) FromMethodMultiple(Func<InjectContext, IEnumerable<T>> method) F

    ZenjectのConstructionMethodたち - imog
  • 1