..


Рекламные ссылки

IoC и DI (инверсия управления и зависимостей)

Инверсия '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, которая будет решена в конструкторе.

Diagramma Dipendenze

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

Следующий класс ассемблере, имеет задачей для инициализации класса DvdService:

Diagramma Assembler

Есть три типа Dependecy Injection:

  • Интерфейс инъекции
  • Сеттер инъекции
  • Конструктор инъекций
Весной, как мы увидим позже, реализуются только конструктор и установки инъекции, но это также возможно для инициализации и создания объектов с помощью объекта фабрики и завода метод.

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