$engine = new DieselEngine();
$car = new Car($engine);
$car->startEngine();
Dependency Injection (DI)Dependency Injection (DI) — это шаблон проектирования в объектно-ориентированном программировании, который позволяет объектам получать свои зависимости извне, а не создавать их самостоятельно. Это способствует слабой связанности между компонентами, улучшает тестируемость и расширяемость кода.
Основные концепции и преимущества DI:
Зависимость: Это объект, который требуется другому объекту для выполнения своей работы. Например, класс Car может зависеть от класса Engine.
Инжекция зависимости: Процесс предоставления зависимостей объекту извне. Это может быть сделано через конструктор, сеттер или интерфейс.
Слабая связанность: Объекты не создают свои зависимости, а получают их извне, что уменьшает связанность между классами.
Упрощённое тестирование: Легче подменять зависимости на моки или стабы при написании тестов.
Повышенная гибкость и расширяемость: Легче заменять реализации зависимостей без изменения кода классов, которые их используют.
Улучшенная поддержка: Код становится более модульным и его легче поддерживать и развивать.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker