Uma empresa especializada no desenvolvimento de aplicações empresariais escaláveis enfrenta dificuldades na manutenção do seu código devido ao alto acoplamento entre classes. Os desenvolvedores perceberam que muitas classes criam instâncias de seus próprios objetos dependentes, dificultando os testes unitários, a reutilização de código e a troca de implementações sem afetar outras partes do sistema. Para resolver esse problema, o arquiteto de software sugere o uso do padrão Injeção de Dependências (Dependency Injection – DI).
A sugestão do arquiteto sobre o uso de Injeção de Dependências (DI) considera que esse padrão
- A cria manualmente todas as instâncias de objetos dentro das classes para garantir total controle sobre suas dependências.
- B elimina demandas por composição de objetos e por extensibilidade das aplicações, facilitando o gerenciamento do ciclo de vida.
- C injeta dependências estáveis, que ainda estão em desenvolvimento e que têm comportamento não determinístico, no construtor das classes.
- D permite que dependências sejam passadas externamente para um objeto, reduzindo o acoplamento e facilitando a testabilidade.
- E utiliza verificações de erro em tempo de execução para capturar falhas de comunicação entre objetos dependentes.