De que se trata o artigo

Neste artigo abordaremos o padrão de projeto chamado injeção de dependência (Dependency Injection) e o apresentamos com base no projeto Unity, uma excelente ferramenta oferecida pela comunidade open source da Microsoft.


Para que serve:

Injeção de dependência é uma técnica de programação utilizada para a construção de aplicações com baixo acoplamento, este conceito é largamente empregado para minimizar a dependência entre componentes de um sistema e temos como vantagens mais significativas o aumento da flexibilidade, o que favorece a manutenção, a criação de componentes altamente reutilizáveis e um alto grau de extensibilidade.


Em que situação o tema é útil:

A leitura deste artigo irá ajudar o leitor a construir softwares mais flexíveis a mudanças, quando modelamos um sistema para atender alguma necessidade de negócio ou resolver algum problema do mundo real é importante imaginar que estas necessidades podem requerer mudanças em algum momento, pois os negócios são dinâmicos assim como o mundo em que vivemos. Com base nestas ideias sobre mudanças é que este tema é útil, pois nos auxiliará a construir softwares sobre esta perspectiva.

Injeção de dependência com Unity

Neste artigo iremos apresentar um conceito chamado injeção de dependência que tem por objetivo eliminar o forte acoplamento das dependências de um projeto, alguns conceitos de projetos orientados a objetos serão explorados também, a fim de esclarecer a real necessidade das ideias abordadas por este artigo. Na seção prática vamos construir uma aplicação que possui duas formas de persistência, onde cada forma é realizada por um projeto (DLL) diferente, e em tempo de execução será determinado qual DLL deverá ser carregada para persistir as informações, possibilitando a troca de componentes através de um arquivo de configuração.

“Nada é permanente, salvo a mudança”, esta é uma frase muita antiga do filósofo Heráclito e é bem verdade que temos que lidar com mudanças nas atividades cotidianas, por exemplo, hoje o .Net Framework 4.0 é utilizado, entretanto em algum tempo atrás eram C++,VB6, Delphi e outras tecnologias, e com certeza no futuro novas tecnologias serão descobertas e isso exigirá mudança. Dentro deste contexto, muda-se para melhorar.

Quem já programou um dia em uma linguagem dita “procedural” baseada em funções e procedimentos e que hoje desfrute do paradigma da orientação a objetos consegue perfeitamente enxergar as vantagens desta mudança de conceito. Desta forma acontece também com as definições e com o escopo dos projetos de sistemas construídos, os requerimentos mudam e a necessidade de reengenharia é constante, isto porque novas tecnologias promovem melhores resultados ou porque a realidade representada através de uma lógica de programação precisa ser aperfeiçoada para trazer maiores benefícios aos seus utilizadores.

Com base neste pensamento inicial pode-se facilitar muito a vida se houver programação preparada para mudanças, trabalhando de forma mais modular e flexibilizando a construção de sistemas. Para atingir este objetivo podem-se empregar algumas técnicas e conceitos bem amadurecidos na indústria do software, que promovem inúmeros benefícios no sentido de favorecer a mudança na elaboração de projetos de sistemas.

O fato de utilizar uma linguagem dita orientada a objetos por si só não garante efetivamente o trabalho orientado a objetos, pois esta está associada a princípios e conceitos, e não a uma tecnologia ou linguagem. Dito isto, para que se obtenha um projeto orientado a objetos de qualidade é preciso submetê-lo a alguns princípios importantes, o que remete ao baixo acoplamento e a alta coesão.

...
Quer ler esse conteúdo completo? Tenha acesso completo