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