Веб-разработка на Java. Урок 4. Inversion of Control (IoC) Intro.

Автор Ruslana Chernenko
Веб-разработка на Java. Урок 4. Inversion of Control (IoC) Intro.

Рад приветствовать вас на третьем уроке онлайн курсы веб разработка на Java прошло много времени с момента публикации последнего видео, но я решил продолжить мне сегодня будет небольшой присказка к спиннингу которые мы начнём изучает следующие части этого урока который как мне кажется то, что мы сейчас будем делать.

Может быть полезным для понимания того как в своей основе работает Spring мы видим простейшего приложение которое получает аргумент командной строки и выводит его стандартный вывод если рассмотреть этот closmain как компонент приложение видно, что компонент отвечай сразу две задачи за получение сообщи изображение этого сообщения, что не очень хорошо, но и мы знаем есть принципы объектно-ориентированного программирования проектирования как Single responsibility. Давайте его реализуем компонент должен отвечать только за одну задачу. Давайте создадим интерфейс для компоненты который будет отвечать за получение сообщения и ему в общем нам нужно от него только один метр — это получить сообщение и создадим интерфейс который будет отвечать за отображение сообщение метод отобразить сообщение давайте сделаем одну простенькую реализацию.

Настя Пусть возвращает отдыхала World и также реализацию мы вчера народ компонента и он будет выводить сообщение которое будет получать от нашего первого компонента: провайдер провайдер в данном случае является зависимостью вчера дорога через конструктор присваивать выводить обращается провайдер получается общение выводит его на экран.

Пока ничего сложного и непосредственно у меня можно создавать провайдера здесь полиморфизм в действие и передавать самую провайдера его зависимость и вызывать метод и всё будет работать пока, что мы всё, что сделали только применили хорошая практика объектно-ориентированном проектировании. Всё тем не менее наше предложение является не очень гибким потому, что реализация реализации обоих компонентов и носу проваливается чёрная дыра. Определи Что — это значит. Это значит, что если я здесь например было бы у меня реализация мыслишь провайдера. Запусти мне сообщение об и получал из интернета то есть она была нехватка мужчин по сети, но здесь мы будем просто — это будет массаж и соответственно например хотела я поменять реализацию на интернет провайдер и для того чтобы работал нужно его перекомпилировать адрес реализации определяются в компанию — это не очень гибкая хочется чтобы они определялись в runtime. Ну для этого давайте сделаем во-первых вынесем определение конкретной реализации component Property я тебя пропустил будет читать какой-нибудь Factory который будет читать Property создавать при помощи рефлексивном эти реализация все объекты соответствующих классов мы будем поэтому Factory запрашивать их то есть мы создаем файл properties котором. Так у нас 2. Бизнес сущности мы напиши нам нужно для прописки там нужно массаж правый глаз и массаж рейндроп класс указать. Ну давайте. Пусть — это будет показывать полное имя потому, что она включает в себя и пакет. Пусть — это будет для начала символ нас ещё провайдер здесь Simple nash Rambler реализация для компонентного провайдер mos.ru Property теперь надо создать как 3 класс провайдер и. Давайте здесь, что нам нужно читать Property до этого у нас есть специальный Class Java properties будем использовать wd-40 надо считать файл и файл. Давайте по ресурсу чтобы всё было красиво файл подними стандартных способов ей давайте сделаем красиво исключением и так Fails читали теперь надо загрузить Property из этого файла и можно получать эти читать название классов объекты которыми должны создать. Да — это у нас провайдер класс какие мысли Raider klan название читали теперь помощью рефлексии создадим объекта сначала провайдера здесь ещё много исключения которые могут возникнуть. Давайте чтобы не было долго. Вообще Яна и скетчи. Ну просто поговорить только так хорошо. Надо его к провайдеру также надо создать. Эндер, а потом уже прошел конкретно его конструкция потому что. Как Мы помним у нас ещё есть зависимость мыслишь провайдеры нам надо создавать не через функции конструктора через этот если мы получим его newinstance и передадим провайдер. Ну вот и всё осталось с тобой или гетры через которую мы будем получать необходимое реализация и можно теперь вместо того чтобы вручную создавать реализацию компонентами мы будем использовать вместо характере и запрашивать у него сначала правая потом рейнджеры и отображать и по идее — это должно работать смотреть. Что произошло мы вынесли процесс создания в наше время сущности в. Махачкале который учитывает назвать реализации картинки создаёт объектом конкретным и теперь наш программа стала более гибкой. Потому, что если я сейчас здесь например за то чтобы — это был интернет провайдер я вот так вот поменяю. А мне не придётся перекомпилировать кот ну здесь мы этого не заметила так — это из-за. Но — это очевидно потому, что название учитываются в. Сочи Как создаются объекты через рефлексию и всё поставьте мне изменяла изменяю. просто поменяли реализацию смотрим. Удалите сообщение получено из интернета то, что мы сейчас сделали издалека какой там — это наверное первое приближение в принципе inversion of Control или инверсия контроля который лежит в основе спринга. И вообще является довольно важным состоит в том, что вообще. Обычно Обычно когда мы здесь создавали объекта до центра когда мы создавали мы вчера так как мы вчера зависит от провайдера обычно если не использовать в принципе инверсия контроля сам ответственен за то чтобы получить свои зависимости от зависимости вот — это вот провайдер сообщение.

0 комментариев
0

Читайте также