Oi,
Primeiro, o Diagrama de Classes não é um modleo dinâmico, tente usar um diagrama de colaboração,a tividade ou sequência
Um exemplo de login pdoeria ser:
FORM HTML -> Servlet -> GerenciadorUsuarios -> DAO
Passando login/senha para seu Servlet, que recebe estes e localiza (JNDI, IoC, insctancia um novo objeto, o que for) um GerenciadorUsuario (não estou dizendo que você tem que ter uma classe assim, é apenas um exemplo) que tem um método:
public Usuario autenticar(String login, String senha);
O Servlet chama este método, se retornar um usuario ele o armazena em sessão.
Esse exemplo não tem muito processamento, e nada disso é responsabildiade do usuário, mas vamos supôr que você quer mudar a senha do usuário. Em vez de fazer no seu Servlet:
String senha = request.get...("senha");
String criptografada = criptografar(Senha);
usuario.setSenha(criptografada);
...
Você pode chegar a conclusão que uma senha deve ser algo secreto, só conhecido pelo usuário, que ele deve sempre retornar sua senha criptografa quando perguntarem, então faz seu servlet assim:
String senha = request.get...("senha");
usuario.novaSenha(senha);
E seu usuário, no método novaSenha(String) seria:
public void novaSenha(String s){
this.senha=senha;
}
public String getSenha(){
return criptografar(senha);
}
Pense nessa política de separação de responsabilidades em processamentos maiores e você vai ver o acoplamento sumindo bastante do seu código.
Toda a conversão entre HTTP/HTML e o mundo dos objetos, apenas isso. Nada de regras de negócio.
[quote=“dac”]
Quanto ao DAO… quem chamaria? O objeto Usuario? Para q ele não seja mais “burro”?[/quote]
Existem algumas técnicas para objetos chamarem seus mecanismos de persistência, mas por enquanto que inicia o processo (pode ser o método do seu façade) pode chamar, como em:
public void AtualizarUsuario(Usuario u){
dao = new Dao();
dao.atualizar(u);
}
Note que isso não é um requisito funcional, salvar em banco de dados é vencer uma limitação prática (não tme memória para guardar tudo na JVM), as regras de negócio (como criptografia de senha) estão implementadas nos objetos de domínio.
Shoes