IUnit CreateUnit(). Унаследовал две фабрики (PlayerFactory и EnemyFactory).
Фабрика игрока возвращает класс Player : IUnit.
В зенжект положил фабрику игрока с его интерфейсом. Container.BindInterfacesAndSelfTo<PlayerFactory>().AsSingle().NonLazy();
Есть класс, например, который при запуске сцены создает игрока. Ему надо заинжектить фабрику игрока.
Чтобы не было зависимости от конкретного класса - инжектить надо же не PlayerFactory, а IUnitFactory?
Но тогда возникают вопросы:
1. Мой класс, который юзает фабрику - получит не Player, а IUnit. И как понять, что он именно игрока получил а не врага?
2. Как Зенжект поймет, что конкретно в этот класс надо внедрить PlayerFactory, а не EnemyFactory, если мы инжектим по интерфейсу, а он у них общий?
Ответ на 1й вопрос - можно скастить до Player,Ответ на 2й - WhenInjectedInto....
Обсуждают сегодня