+1 Хотя я не могу комментировать специфику Ninject, я полностью согласен с общими пунктами, выдвинутыми здесь.

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

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

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

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

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

Ответы на вопрос(2)

Ваш ответ на вопрос