Rotina de autenticação  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
hlegius
JavaChild
[Avatar]

Membro desde: 07/05/2006 14:29:25
Mensagens: 126
Localização: Guarulhos, SP
Offline

Olá !
Estou para montar uma aplicação e uma das coisas que haverá é a autenticação de usuários.

Como não é nada elegante - e funcional - meter lá na classe Usuario o campo login,senha - pensei no seguinte:

classe Usuario - atributos do usuário e sua relação no sistema
classe Login - dados para autenticação
classe FoobarAutenticador - haveria métodos - a principio 1 só - para autenticação deste usuário

Resumidamente seria: FoobarAutenticador.autentica(Login) : Usuario
Tenta encontrar o usuário com o objeto Login, caso o encontre, retorna o Usuario com suas devidas informações para as camadas superiores.

Neste caso o FoobarAutenticador atuaria como uma espécie de Serviço - juro que eu consigo vê-lo também como uma Facade, não sei...

O que acham ?

This message was edited 1 time. Last update was at 03/01/2010 19:09:30


http://programe.me
Zend Certified Engineer
ArchLinux - A simple lightweight Linux Distribution
[WWW] [MSN] [ICQ]
osmio
Java Ninja

Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline

Creio que a autenticação no sistema não seja "obrigação" de um objeto Usuario.
Portanto, a responsabilidade de fazer isso pertence ao sistema.

No seu caso, separar as obrigações faz muito sentido, mas, eu faria um pouco diferente.

Imagine o cenário:




Acho que o uso de componentização nesse caso faria mais sentido.

O Usuario nao sabe autenticar, mas sabe quem faz isso (no caso o autenticador).

At.

This message was edited 2 times. Last update was at 05/01/2010 09:06:00


"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert
[Email]
hlegius
JavaChild
[Avatar]

Membro desde: 07/05/2006 14:29:25
Mensagens: 126
Localização: Guarulhos, SP
Offline

Opa !
Cara, gostei da sua ideia !

Depois que estive vendo o livro do Fowler onde ele diz que - particularmente não gosta de Services, mesmo não tendo nada contra - fiquei a pensar em como eu poderia melhor desenhar as aplicações evitando ao máximo os Services.

Desta forma que você colocou eu estaria evitando aquele ciclo: Entidade; Service.metodo(recebeEntidade) : retornaEntidade.

Diga-me uma coisa: porque optou por fazer do autenticador uma variável de instância de Usuario ? Não poderia simplemente instanciá-la no Usuario.login() e um abraço ?


Valeu !

http://programe.me
Zend Certified Engineer
ArchLinux - A simple lightweight Linux Distribution
[WWW] [MSN] [ICQ]
osmio
Java Ninja

Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline

hlegius wrote:Opa !
Cara, gostei da sua ideia !

Depois que estive vendo o livro do Fowler onde ele diz que - particularmente não gosta de Services, mesmo não tendo nada contra - fiquei a pensar em como eu poderia melhor desenhar as aplicações evitando ao máximo os Services.

Desta forma que você colocou eu estaria evitando aquele ciclo: Entidade; Service.metodo(recebeEntidade) : retornaEntidade.

Diga-me uma coisa: porque optou por fazer do autenticador uma variável de instância de Usuario ? Não poderia simplemente instanciá-la no Usuario.login() e um abraço ?


Valeu !


Services podem até ser úteis, desde que bem utilizados em seus casos específicos.

Deixar o autenticador como membro da classe te permite utilizar outros métodos específicos dele em outras parte da classe Usuario.
Apenas como mero exemplo, imagine a classe Usuario como segue:



Se voce deixar para instanciar o autenticador dentro do método login() por exemplo, teria que criar uma nova instancia dentro do método logout().
Fazendo assim, voce pode perfeitamente reutilizar seus objetos.

At.

This message was edited 2 times. Last update was at 05/01/2010 09:07:20


"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert
[Email]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team