Técnica para diminuir o nível de acoplamento

Antes de iniciar o post, quero que você foque no entendimento da arquitetura proposta e não na maneira de criar uma class. 

“Linguagem que são fortemente tipadas dispensa qualquer  uso de variável que contem alguma declaração do seu tipo  exemplo stringNome,IAutenticao,intIdade“.

Desenvolver sistemas com um nível baixo de acoplamento não e uma tarefa fácil, abaixo vou demonstrar uma dica.

Projeto: Aplicativo mobile

Escopo:

O sistema deve permitir que o usuário faça autenticação em um ambiente web, uma vez que foi feito a autenticação o sistema deve gravar os dados do usuário em um arquivo texto, e na próxima vez que o usuário for entrar no sistema. O sistema deve fazer a autenticação no arquivo texto.

Dado o problema vamos desenhar a estrutura necessária para que o nosso código tenha um baixo nível de desacoplamento.

Imagem

Para esse módulo de autenticação eu utilizei uma interface , e criei duas class que implementa a interface,  AutenticacaoArquivo e AutenticacaoWeb caso tenha no sistema outras formas de autenticação sera bem fácil estender.

Abaixo vamos utilizar  a interface. vamos utilizar a linguagem C#, mas esse exemplo pode ser aplicado a qualquer linguagem que utiliza OO.

Imagem

Na class Usuário note que eu  criei uma variável que tem o tipo da nossa interface “Autenticacao”, 

No construtor da class Usuário ele pede um parâmetro do tipo Interface Autenticação,

no método “AutenticarUsuario” eu retorno   o método da nossa interface.

Até esse momento estamos só dependendo da Interface, o método da nossa class usuário não sabe se o tipo da autenticação é via web ou via arquivo etc..

Utilizando a class Usuário:

Imagem

Com o exemplo da class usuário nos temos vários tipos de autenticação  sem precisar mexer em nenhuma linha de código no método  “AutenticarUsuario”;

Considerações Finais:

Desenvolver um sistema e mais do que criar código, uma vez eu escutei uma seguinte verdade, “Sempre programe para Interface quando for necessário”.

LEAVE A COMMENT