Pessoal,
sempre que construo um sistema de login, no meu controller LoginUser(por exemplo) eu acabo fazendo o seguinte:
if(User.getPerfil.equalsIgnoreCase("administrador"))
return "administrador.html";
if(User.getPerfil.equalsIgnoreCase("convidado"))
return "convidado.html";
if(User.getPerfil.equalsIgnoreCase("cliente"))
return "cliente.html";
uma forma que pensei para contornar esses ifs seria criar uma interface para usuário e cada perfil de usuário saberia para que página retornar, ficaria mais ou menos assim:
public interface IUsuario {
public String logar();
}
as implementações
public class Cliente implements IUsuario {
private int id;
private String nome;
@Override
public String logging() {
return "cliente.html";
}
}
public class Administrador implements IUsuario {
private int id;
private String nome;
@Override
public String logging() {
return "administrador.html";
}
}
dessa forma eu até evito de ter o atributo perfil, pq a própria classe é o perfil. e assim no meu controller eu teria algo como:
return user.logging(); //não precisando mais dos ifs.
só que fazendo isso eu estou colocando a regra de login dentro do meu modelo, o próprio objeto administrador/Cliente saberia como fazer o login.
aí vem minha dúvida, isso é modelo rico ou gambiarra?