Главная страница
Навигация по странице:

  • Dependency Injection

  • 8. Какие Beans будут использоваться для настройки приложения

  • 9. Что такое Spring

  • 9.1. Для чего он нужен

  • Инструкция по созданию бизнесобъектов. Strategy это поведенческий паттерн, выносит набор алгоритмов в собственные классы и делает их взаимозаменимыми


    Скачать 0.73 Mb.
    НазваниеИнструкция по созданию бизнесобъектов. Strategy это поведенческий паттерн, выносит набор алгоритмов в собственные классы и делает их взаимозаменимыми
    Дата13.11.2022
    Размер0.73 Mb.
    Формат файлаdocx
    Имя файла2.docx
    ТипИнструкция
    #785689
    страница6 из 26
    1   2   3   4   5   6   7   8   9   ...   26

    7.1. Агрегация и композиция в Dependency Injection?


    Ассоциация — это связь между двумя классами на основе ссылок. Класс Player содержит ссылку уровня класса на класс Asset. Связь может быть представлена ​​линией между этими классами со стрелкой, указывающей направление навигации. Если стрелка находится с обеих сторон, ассоциация имеет двунаправленную навигацию.



    Зависимость часто путают с ассоциацией. Зависимость обычно создается, когда мы получаем ссылку на класс как часть конкретной операции/метода. Зависимость указывает, что можно вызвать один из API-интерфейсов полученной ссылки на класс, и любая модификация этого класса может нарушить работу класса.

    Зависимость представлена ​​пунктирной стрелкой, начинающейся от зависимого класса к его зависимости. Множественность обычно не имеет смысла в зависимости.



    Агрегация аналогична ассоциации и часто рассматривается как избыточная связь. Распространено мнение, что агрегация представляет собой отношения один-ко-многим / многие-ко-многим / часть-целое (т. е. более высокая множественность), которые, конечно, также могут быть представлены через ассоциацию (отсюда и избыточность).

    Композиция ответственна за создание экземпляра. Когда класс B состоит из класса A, экземпляр класса A владеет созданием или контролирует время жизни экземпляра класса B.

    Излишне говорить, что, когда экземпляр класса A уничтожается (сборка мусора), экземпляр класса B ждет та же участь.

    Также считается неправильным представление о том, что композиция реализована как вложенные классы. Композиция связывает время жизни конкретного экземпляра с данным классом, а сам класс может быть доступен другим частям системы.



    Dependency Injection — это один из способов реализации инверсии контроля (принцип, используемый для уменьшения связанности кода).

    Композиция — это частный случай ассоциации (это когда классы имеют ссылки друг на друга, так как им необходимо взаимодействовать между собой), при котором какой-то класс является самодостаточным, а другие не могут независимо от него существовать.

    То есть в общем случае, это термины из разных областей. Но если попытаться их сравнить, то можно заметить, что Dependency Injection построен на агрегации (частный случай ассоциации) - аналогично композиции, но здесь уже класс является самодостаточным и он может быть использован в различных классах.

    Но самое главное отличие — это их назначение, при Dependency Injection управление жизненным циклом некоего компонента происходит извне этого компонента, а просто композиция нам этого не дает — это лишь тип связи между объектами.

    8. Какие Beans будут использоваться для настройки приложения?


    Чтобы создать класс с конфигурацией на основе Java-кода, нужно аннотировать его с помощью @Configuration.

    Этот класс будет содержать фабричные методы для создания бинов в контейнере.

    Эти методы должны быть аннотированы аннотацией @Bean.

    Аннотация @Configuration, прописанная перед классом, означает, что класс может быть использован контейнером Spring IoC как конфигурационный класс для бинов.

    Аннотация @Bean, прописанная перед методом, информирует Spring о том, что возвращаемый данным методом объект должен быть зарегистрирован, как бин.

    Аннотация @ComponentScan("path") задает путь, по которому спринг будет искать классы для создания бинов.

    9. Что такое Spring?


    Spring Framework – это контейнер внедрения зависимостей, с несколькими удобными слоями (например: доступ к базе данных, прокси, аспектно-ориентированное программирование, RPC, веб-инфраструктура MVC).

    9.1. Для чего он нужен?


    Spring обеспечивает решения многих задач, с которыми сталкиваются Java-разработчики и организации, которые хотят создать информационную систему, основанную на платформе Java. Spring не всецело связан с платформой Java Enterprise, несмотря на свою масштабную интеграцию с ней, что является важной причиной его популярности.

    Spring, вероятно, наиболее известен как источник расширений (features), нужных для эффективной разработки сложных бизнес-приложений вне тяжеловесных программных моделей, которые исторически были доминирующими в промышленности. Еще одно его достоинство в том, что он ввел ранее неиспользуемые функциональные возможности в сегодняшние господствующие методы разработки, даже вне платформы Java.

    Этот фреймворк предлагает последовательную модель и делает ее применимой к большинству типов приложений, которые уже созданы на основе платформы Java. Считается, что Spring реализует модель разработки, основанную на лучших стандартах индустрии, и делает ее доступной во многих областях Java.

    1   2   3   4   5   6   7   8   9   ...   26


    написать администратору сайта