Какая польза от инфраструктуры IoC в приложении MVC? [закрыто]

Я пытаюсь понять использование фреймворка IoC, такого как StructureMap, но я не могу не думать, что эти «шаблоны проектирования» - просто бессмыслица, делающая код более сложным.

Позвольте мне начать с примера, где я думаю, что IoC несколько полезен.

Я думаю, что IoC может быть полезен при работе с экземплярами классов контроллеров в инфраструктуре MVC. В этом случае я думаю о .NET MVC Framework.

Обычно создание экземпляра класса контроллера обрабатывается платформой. Это означает, что вы не можете передавать какие-либо параметры конструктору вашего класса контроллера. Вот где фреймворк IoC может пригодиться. Где-то в контейнере IoC вы указываете, какой класс должен быть создан и передан вашим контроллерамconstructor когда класс контроллера вызывается.

Это также удобно, когда вы хотите выполнить модульное тестирование контроллера, потому что вы можете смоделировать объект, который ему передан.

Но, как я уже сказал, я могу понять, почему люди хотят использовать его для своих классов контроллеров. Но не за пределами этого. Оттуда вы можете просто сделать нормальноВнедрение зависимости.

Но почему бы просто не сделать это так:

public class SomeController
{
    public SomeController() : this( new SomeObj() ) 
    {
    }

    publiv SomeController(SomeObj obj)
    {
        this.obj = obj;
    }
}

Теперь вам не нужно использовать какую-либо стороннюю платформу IoC, которая также означает более низкую кривую обучения. Так как вам не нужно вдаваться в спецификации этой основы.

Вы все еще можете издеваться над объектом в своих юнит-тестах. Так что никаких проблем там тоже нет.

Единственное, что вы можете сказать: «Но теперь ваш класстесно связаны вSomeObj". Это правда. Но кого это волнует !? Это класс контроллера! Я никогда не собираюсь повторно использовать этот класс, так что ... Так с какой стати я должен беспокоиться об этой жесткой связи ...? Я могу издеваться над объектом, который является перешел к нему. Это единственная важная вещь.

Так почему я должен беспокоиться об использовании IoC? ДЕЙСТВИТЕЛЬНО ли я упускаю суть ...? Для меня модель IoC - это просто переоцененная модель. Добавление более сложных слоев в ваше приложение ...

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

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