SeparatedObjectFactory
It is used to create objects that do not derive from MonoBehaviour. When inheriting this class, the objects and parameters to be created must be defined as types.
Sample uses:
public class Installer : GameObjectInstaller
{
public override void Install(DIContainer container)
{
container.BindFactory<FooItem.Factory>();
container.BindFactory<FooItemWithoutParam.Factory>();
}
}
public class SampleClass : MonoInjecter
{
[Inject]
private readonly FooItem.Factory _fooItemFactory;
[Inject]
private readonly FooItemWithoutParam.Factory _fooItemWithoutParamFactory;
protected override void Awake()
{
base.Awake();
FooItem fooItem = _fooItemFactory.Create(26);
FooItemWithoutParam fooItemWithoutParam = _fooItemWithoutParamFactory.Create();
}
}
public class FooItem : IFactorable<int>
{
private readonly Foo _foo;
public FooItem(Foo foo)
{
_foo = foo;
}
public void InitializeFactory(int variable)
{
Debug.Log($"{_foo.index}: int variable is: {variable}");
}
public class Factory : SeparatedObjectFactory<FooItem, int> { }
}
public class FooItemWithoutParam : IFactorable
{
private readonly Foo _foo;
public FooItemWithoutParam(Foo foo)
{
_foo = foo;
}
public class Factory : SeparatedObjectFactory<FooItemWithoutParam> { }
}
Last updated