Práticas recomendadas para injeção de dependência via construtor
Inversão de controle é uma técnica à prova de valor usada para modularizar um sistema e desacoplar os componentes um do outro.
O baixo acoplamento é sempre uma vantagem: simplifica o teste automático dos componentes e torna o código em conformidade comprincípio de responsabilidade única.
Entre as maneiras de declarar uma dependência para outra classe (localizador de serviço, injeção de propriedade chamando um método público / definindo uma propriedade pública ...), a injeção de construtor parece ser a melhor abordagem.
Embora seja provavelmente o mais difícil (pelo menos dos três listados) de implementar, ele traz vantagens significativas:
todas as dependências são realmente visíveis com a assinatura do construtor;dependências cíclicas não acontecem devido à ordem bem definida de instanciação.Quais são os prós / contras das muitas opções que o C ++ oferece para executar a injeção via construtor?