DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo .net Magazine 62 - O padrão de injeção de dependência

Artigo da Revista .NET Magazine - Edição 62.

Esse artigo faz parte da revista .NET Magazine edição 62. Clique aqui para ler todos os artigos desta edição

 

 

O padrão de injeção de dependência

Usando o Unity Application Block para construir aplicações com baixo acoplamento

 

A grande maioria das aplicações está repleta de objetos e componentes customizados responsáveis por executar tarefas específicas, genéricas ou complementares tais como envio de e-mail, geração de arquivo texto, logging, autenticação, autorização, manipulação de exceções, extração de informações de uma fonte qualquer, manipulação de dispositivos, entre outros. Na medida em que aumentamos a comunicação entre os módulos de uma aplicação (seja através de componentes, classes ou métodos) geramos uma crescente dependência aumentando sensivelmente sua complexidade de entendimento e tornando a tarefa de aplicação de testes mais extensa. Um dos resultados indesejáveis deste cenário é o alto acoplamento entre os módulos (ou subsistemas), e uma das técnicas mais utilizadas para reverter esse quadro é o chamado Padrão de Injeção de Dependência (Dependency Injection Pattern ou apenas DI).

 

O problema do alto acoplamento

Podemos medir o quão fortemente as classes de uma aplicação estão conectadas, possuem conhecimento ou dependem de outra classe observando o acoplamento existente em cada caso. Quanto mais acoplada uma classe estiver de outra, maior o risco de termos uma combinação dos seguintes problemas:

·             Mudanças numa classe relacionada forçam alterações locais à classe para que o funcionamento seja mantido;

·             O reuso da classe torna-se mais difícil uma vez que sua implementação depende de outras classes;

·             A coesão da classe diminui na medida em que aumenta o acoplamento caso ela assuma parte das responsabilidades de outra classe;

·             A classe não pode ser testada isoladamente já que depende de testes em conjunto com outras classes, aumentando inclusive o esforço de entendimento.

 

Percebemos rapidamente que diminuindo ao máximo o acoplamento, além de evitarmos os problemas citados, tornaremos nossa aplicação mais flexível e fácil de ser mantida, especialmente em equipes com paralelismo de desenvolvimento de atividades correlatas.

Utilizando as corretas técnicas e ferramentas para injeção de dependência, diversos componentes podem ser desenvolvidos paralelamente e sua aplicação se tornará mais plugável e flexível, exigindo um esforço menor para modificações. Pode-se aproveitar ainda de recursos como Mock Objects para auxiliar nos testes unitários.

        

Nota do DevMan

Mock Ojects são objetos que simulam o comportamento de outros objetos ou controles complexos implementando a mesma interface das classes reais. Existem diversos frameworks de mock para .Net, dentre eles o NMock disponível em http://www.nmock.org. Esse tipo de objeto é muito utilizado em abordagens de desenvolvimento orientadas a testes, conhecidas como TDD (Test-Driven Development). "



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Leandro Daniel

Músico amador, casado, pai e desenvolvedor de software. Atuou por mais de 11 anos como consultor de tecnologia da informação, tendo desempenhado atividades relacionadas a desenvolvimento e liderança de equipes. Trabalha desde 2002 com tecnologias da Microsoft com foco em .NET e possui as certific...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03