📎 Webclip
Dependency Injection made simple
A página define dependency injection como uma forma simples de lidar com objetos que dependem de outros objetos. Primeiro mostra um exemplo acoplado em JavaScript e depois troca a criação direta da conexão por injeção no construtor, para permitir usar conexões diferentes sem alterar a rota.
Fichamento #
- Dependency injection é apresentada como o ato de passar um objeto para o construtor ou setter de uma classe que depende dele.
- O exemplo inicial mostra uma rota de posts que cria diretamente uma DatabaseConnection, o que deixa o código acoplado e pouco flexível.
- A alternativa com SQLiteConnection e MySqlConnection passa a conexão ao construtor de PostsRouter, permitindo trocar a implementação usada.
- O texto diz que essa abordagem desacopla os objetos e facilita o gerenciamento do código.
- Também afirma que dependency injection ajuda nos testes, porque é possível passar um mock object para o post router.
- Em linguagens fortemente tipadas, o texto diz que é preciso definir um tipo para o objeto passado.
- Para isso, a página introduz interfaces como estrutura de tipos sem implementação de métodos ou propriedades.
- No exemplo em C#, as classes SQLiteConnection e MySqlConnection implementam IDb.
- PostsRouter recebe IDb no construtor e usa a conexão por meio da interface.
- O texto encerra com um exemplo completo em C# usando SQLiteConnection e MySqlConnection em dois objetos PostsRouter diferentes.