Недавно я пытался изучить IoC и задать пару вопросов на основе следующего кода:
public class WarriorModule : NinjectModule
{
public override void Load()
{
Bind<IWeapon>().To<Sword>();
Bind<Samurai>().ToSelf();
}
}
У меня возникли проблемы с пониманием новой концепции интерфейсов. Прежде чем я создам интерфейс, такой как IRunnable
, реализующий функцию void Run()
. С IoC я теперь просматриваю интерфейс как что-то, что только сопоставляется с одним конкретным классом. Предполагая, что как я могу сопоставить несколько конкретных классов с интерфейсом? Я продолжаю читать, что вы можете сопоставить несколько интерфейсов с одним конкретным классом, но не наоборот (если это не значит, что контекстное отображение в игру).
Предполагая, что интерфейсы относятся только к одному объекту, , когда мне нужно создать интерфейс, а не привязывать объект к себе? В любом случае вам придется изменить один и тот же фрагмент кода при сопоставлении изменения правильные?
Изменить: я отметил ответ, который я сделал, потому что это помогло мне лично. Оба комментария одинаково информативны, хотя.