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