Инверсия контроля (или IoC) - это примерно получение свободы (Вы женаты, вы потеряли свободу и вас контролируют. Вы развелись, вы только что внедрили инверсию контроля. называется "развязан". Хорошая компьютерная система препятствует очень тесным отношениям.) больше гибкости (кухня в вашем офисе подает только чистую водопроводную воду, это ваш единственный выбор, когда вы хотите пить. Инверсия контроля путем настройки новой кофемашины. Теперь вы можете гибко выбирать водопроводную воду или кофе.) И меньше зависимости (у вашего партнера есть работа, у вас нет работы, вы финансово зависит от вашего партнера, поэтому вы находитесь под контролем. Вы нашли работу, вы внедрили Inversion of Control. Хорошая компьютерная система поощряет независимость.)
Когда вы используете настольный компьютер, у вас есть подчиненный (или, скажем, управляемый). Вы должны сидеть перед экраном и смотреть на него. Использование клавиатуры для ввода текста и использование мыши для навигации. И плохо написанное программное обеспечение может поработить вас еще больше. Если вы замените свой рабочий стол на ноутбук, то у вас несколько перевернутый контроль. Вы можете легко взять его и передвигаться. Так что теперь вы можете контролировать, где вы находитесь с вашим компьютером, а не компьютер, управляющий им.
Реализуя Inversion of Control, потребитель программного / объектного объекта получает больше элементов управления / опций над программным обеспечением / объектами, вместо того, чтобы управлять им или иметь меньше опций.
Имея в виду вышеупомянутые идеи. Мы все еще скучаем по ключевой части IoC. В сценарии IoC потребитель программного обеспечения / объектов представляет собой сложную структуру. Это означает, что созданный вами код не вызывается вами. Теперь давайте объясним, почему этот способ работает лучше для веб-приложения.
Предположим, ваш код - это группа работников. Им нужно построить машину. Этим работникам нужно место и инструменты (программная структура) для сборки автомобиля. Традиционная программная структура будет похожа на гараж со многими инструментами. Поэтому рабочие должны сами составить план и использовать инструменты для сборки автомобиля. Создание автомобиля - дело непростое, рабочим будет очень сложно правильно планировать и сотрудничать. Программная платформа modern будет похожа на современный автомобильный завод со всеми необходимыми средствами и менеджерами. Рабочим не нужно составлять никакого плана, менеджеры (часть структуры, они самые умные люди и разработали самый сложный план) помогут координировать действия, чтобы работники знали, когда выполнять свою работу (среда называет ваш код). Рабочие просто должны быть достаточно гибкими, чтобы использовать любые инструменты, которые им дают менеджеры (используя Dependency Injection).
Хотя рабочие дают контроль над управлением проектом на верхнем уровне менеджерам (каркас). Но хорошо, что некоторые профессионалы помогают. Это концепция IoC действительно происходит от.
Современные веб-приложения с архитектурой MVC зависят от инфраструктуры, выполняющей маршрутизацию URL-адресов, и устанавливают контроллеры для вызова платформы.
Внедрение зависимостей и инверсия управления связаны между собой. Внедрение зависимостей находится на уровне микро , а инверсия управления - на уровне макро . Вы должны съесть каждый укус (внедрить DI), чтобы закончить прием пищи (внедрить IoC).