..
Инверсия 'S управления (IoC) является характерной особенностью структуры, которая движется управления потоком приложением для себя рамки.
Давайте рассмотрим пример, чтобы разъяснить понятие: если вы создаете графический интерфейс API через свинг , программист только необходимо реализовать обработчики событий вызвано пользователя, например, при нажатии кнопки или ввода текста. Рамочная остается для контроля потока приложения, например, открытия и закрытия окон.
Этот тип поведения называется IoC так как элемент управления перемещается разработчик базы.
Как только было ясно, что МОК, мы видим, как она используется в Spring.
Все приложения состоят из объектов, которые достигают заданной цели должны сотрудничать друг с другом, и неизбежно формируется зависимость.
Обычно эти зависимости будут разрешены с помощью кода, который подходит для конфигурации (обычно производитель).
Предположим, что мы должны реализовать класс для управления видео-магазин:
it.mrwebmaster пакет;
импорт java.util.ArrayList;
импорт java.util.List;
{Общественного класса VideoManager
Частные dvdService DvdService;
общественных VideoManager () {
супер ();
/ **
* Конфигурация и разрешения зависимостей
* /
this.dvdService DvdServiceImpl = новый ();
}
<Dvd> GetAvalaibleDvdList общественных List () {
/ **
* Получить список DVD
* /
Список <Dvd> dvdList dvdService.getDvdList = ();
/ **
* Цикл по списку DVD-дисков, чтобы найти
* Те, доступно
* /
Список = новый ArrayList <Dvd> availabeDvdList <Dvd> ();
для (DVD DVD: dvdList) {
если (dvd.isDisponibile ()) {
availabeDvdList.add (DVD);
}
}
availabeDvdList возвращения;
}
}
В этом примере класс VideoManager стоит задача восстановления список неправительственных организаций, арендованных DVD. Список получить с помощью службы (DvdService), который получает список всех DVD-дисков, и езда на велосипеде в списке, DVD доступны. Класс VideoManager, следовательно, имеет зависимость от объекта DvdService, которая будет решена в конструкторе.

Если бы мы не использовали весны мы должны беспокоиться о разрешении VideoManager dipendeza в конструкторе класса, так как зависимость будет решена к весне.
Весной, то, МОК используется для инвертирования контроль над зависимостей конфигурации.
По этой причине он был придуман Мартина Фаулера, в своей знаменитой статье , термин инъекций Dependecy (DI), который иногда используется неправильно как синоним идентификатор IoC.
Основная концепция DI должен иметь отдельный объект сделать разрешение зависимостей и инициализации.
Следующий класс ассемблере, имеет задачей для инициализации класса DvdService:

Есть три типа Dependecy Injection:
| |
Linux (курс)
Полное руководство по открытым исходным кодом системы. От 49 €. |
| |
PHP (курс)
Полный курс для создания динамических веб-сайтов. От 49 €. |
| |
Руби и Ruby On Rails (курс)
Создание программного обеспечения и веб-приложений с Рубином и RoR. С 39 €. |