Слово зависимость означает зависимость от чего-то. Например, допустим, наша экономика зависит от экспорта нефти.
Предположим, существует два класса: класс X и класс Y. Если класс X использует некоторую функциональность класса Y, то мы можем сказать, что класс X зависит от класса Y.
Обычно, когда мы используем один класс в другом, это делается путем создания объекта первого класса с ключевым словом «новый» во втором классе. Как следующий код
class Student { private $studentName; public __construct($studentName){ $this->studentName = $studentName; } } class School { private $student; private $schoolName; public __construct($schoolName, $studentName){ $this->schoolName = $schoolName; $this->student = new Student($studentName) } }
В вышеупомянутом коде, как сказано в комментарии. Если мы таким образом создадим объект другого класса. Это делает оба класса тесно связанными, что противоречит принципам SOLID. Также это затруднит масштабирование приложения в случае крупномасштабных приложений. Поскольку, поскольку оба класса зависимы, при обновлении одного класса нам может потребоваться обновить все классы, зависящие от этого.
Внедрение зависимостей решает эту проблему. В этом методе зависимость внедряется через конструктор зависимого класса или, в нашем случае, класса School. Посмотрим, как это делается
class Student { private $studentName; public __construct($studentName){ $this->studentName = $studentName; } } class School { private $student; private $schoolName; public __construct($schoolName, Student $student){ $this->schoolName = $schoolName; $this->student = $student; } }
Если вы спросите, имеет ли это большое значение? Я бы сказал да и нет, потому что внедрение зависимостей полезно в долгосрочных крупномасштабных проектах. Но как программист мы должны знать стандарты. Стандарты кодирования делают наш код многоразовым, поддерживаемым и надежным. Как всегда говорил дядя Боб, если этим занимаются врачи и инженеры, то почему не мы?
Удачного кодирования!
Нравится эта статья? Щелкните здесь, чтобы купить мне кофе :)