Меня смущают абстракции интерфейса при использовании IoC

Недавно я пытался изучить IoC, и у меня есть пара вопросов, основанных на следующий код:

public class WarriorModule : NinjectModule 
{
    public override void Load() 
    {
        Bind<IWeapon>().To<Sword>();
        Bind<Samurai>().ToSelf();
    }
}

Мне сложно понять новую концепцию интерфейсов. Раньше я создавал такой интерфейс, как IRunnable , реализующий функцию void Run () . С IoC я теперь рассматриваю интерфейс как нечто, что отображается только на один конкретный класс. Предполагая, что , как мне сопоставить несколько конкретных классов с интерфейсом? Я продолжаю читать, что вы можете сопоставить несколько интерфейсов с одним конкретным классом, но не наоборот (если только здесь не вступает контекстное сопоставление играть).

Предполагая, что интерфейсы сопоставляются только с одним объектом, когда мне следует создавать интерфейс вместо привязки объекта к самому себе? В любом случае вам придется изменить один и тот же фрагмент кода при изменении сопоставления верный?


Edit: я отметил ответ, который я сделал, потому что он помог мне лично. Однако оба комментария одинаково информативны.

12
задан Anthony Mastrean 29 November 2011 в 01:49
поделиться