Lição 5: DIP e injeção de dependência
Uma classe de negócio que cria new SmtpMailer() dentro de si mesma está soldada a um único fornecedor: você não consegue testá-la sem um servidor de e-mail real, e não consegue trocar de fornecedor sem editá-la. Nesta lição vamos inverter a direção da dependência: o serviço vai depender de uma inter
DIP é como uma tomada elétrica na parede: a lâmpada não é soldada à usina — os dois lados se conectam a um plugue padrão, então qualquer lado pode ser trocado sem tocar no outro.
- Princípio da Inversão de Dependência (DIP)
- A lógica de negócio depende de uma interface abstrata, e a implementação concreta é injetada de fora — assim a infraestrutura pode ser trocada e testada com facilidade.
- injeção de construtor
- Um padrão em que a dependência entra como parâmetro do construtor e é guardada em um campo private readonly — quem monta a aplicação escolhe a implementação.