Какая польза от инфраструктуры 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)

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