Я запишу мое простое понимание этих двух терминов:
For quick understanding just read examples*
Внедрение зависимостей (DI):
Внедрение зависимости обычно означает передачу объекта, от которого зависит метод, в качестве параметра метода, вместо того, чтобы метод создавал зависимый объект .
На практике это означает, что метод не зависит напрямую от конкретной реализации; любая реализация, отвечающая требованиям, может быть передана в качестве параметра.
С этими объектами сообщают свои зависимости.
И весна делает это доступным.
Это приводит к слабосвязанной разработке приложений.
Quick Example:EMPLOYEE OBJECT WHEN CREATED,
IT WILL AUTOMATICALLY CREATE ADDRESS OBJECT
(if address is defines as dependency by Employee object)
Контейнер инверсии управления (IoC):
Это общая характеристика рамок,
IOC управляет объектами java
- от создания экземпляров до уничтожения через BeanFactory.
-Java-компоненты, которые создаются контейнером IoC, называются bean-компонентами, а контейнер IoC управляет областью действия bean-компонента, событиями жизненного цикла и любыми функциями AOP , для которых он был настроен и кодирован. *
QUICK EXAMPLE:Inversion of Control is about getting freedom, more flexibility, and less dependency. When you are using a desktop computer, you are slaved (or say, controlled). You have to sit before a screen and look at it. Using keyboard to type and using mouse to navigate. And a bad written software can slave you even more. If you replaced your desktop with a laptop, then you somewhat inverted control. You can easily take it and move around. So now you can control where you are with your computer, instead of computer controlling it
.
Благодаря реализации Inversion of Control потребитель программного / объектного объекта получает больше элементов управления / опций над программным обеспечением / объектами вместо того, чтобы управлять им или иметь меньше параметров.
Инверсия управления в качестве руководства по проектированию служит следующим целям:
Существует разделение выполнения определенной задачи от реализации.
Каждый модуль может сосредоточиться на том, для чего он предназначен.
Модули не делают никаких предположений о том, что делают другие системы, но полагаются на свои контракты.
Замена модулей не оказывает побочного влияния на другие модули
Я буду держать это абстрактно, вы можете посетить следующие ссылки для более детального понимания темы.
Хорошее чтение с примером
Подробное объяснение