Hoje falo sobre o design pattern - Dependency injection muito útil por promover baixo acoplamento.
A Injeção de Dependência basicamente diz: não faça uma classe dependente de outro, injete a dependência. Mas como? dirão alguns. É simples. Imagine a
seguinte PHP.
class Car {
private $driver = null;
public function __construct() {
$this->driver = new Driver();
}
public function crash() {
$this->driver->saySomething();
}
}
Neste momento a classe Car depende do da classe Driver, porque você precisa da classe Driver para instanciar Car. Depois que você fez isso e tudo funciona bem, o seu chefe vem e lhe diz que é preciso distinguir entre os condutores do sexo feminino e motoristas do sexo masculino. Porque se você chamar o crash(), um motorista do sexo feminino seria simplesmente dizer: "você me bateu!" e um motorista do sexo masculino diria algo como: "cara eu tenho uma arma".