Сообщения

Показаны сообщения с ярлыком "Внедрение зависимостей"

Внедрение зависимостей (dependency injection): примеры

Изображение
Пример без внедрения зависимости В следующем примере Java класс Client содержит переменную Service, которая инициализируется конструктором Client. Клиент контролирует, какая реализация сервиса используется, и контролирует его построение. В этой ситуации говорят, что клиент имеет жесткую зависимость от ExampleService. // Пример без внедрения зависимости public class Client { // внутренняя ссылка на сервис, // используемый этим клиентом private ExampleService service; // Конструктор Client() { // Указываем конкретную реализацию в конструкторе // вместо использования внедрения зависимости service = new ExampleService(); } // Метод в клиенте, который использует сервис public String greet() { return "Hello " + service.getName(); } } Внедрение зависимостей - это альтернативный метод инициализации переменной, вместо явного создания объекта service, как показано выше. Мы можем изменить этот пример, исполь...

Внедрение зависимостей (dependency injection)

Изображение
В программной инженерии внедрение зависимостей (dependency injection, DI) - это метод, при котором один объект предоставляет зависимости другого объекта. "Зависимость" - это объект, который можно использовать, например, в качестве сервиса. Вместо того, чтобы указывать клиенту, какой сервис он будет использовать, что-то говорит клиенту, какой сервис использовать. "Внедрение" относится к передаче зависимости (сервиса) в объект (клиент), который будет ее использовать. Сервис становится частью состояния клиента. Передача сервиса клиенту, а не предоставление клиенту возможности создавать или находить сервис, является фундаментальным требованием паттерна внедрение зависимостей. Внедрение зависимостей является порождающим (creational) паттерном проектирования. Цель внедрения зависимости заключается в разделении интересов при строительстве и использовании объектов. Это может улучшить читаемость и повторное использование кода. Внедрение зависимостей является одной из форм...