O sistema que estou desenvolvendo (Struts 1.2.x e Hibernate 3.2) possui uma classe Usuario, que por sua vez está ligada a uma classe GrupoUsuarios, onde estão as permissões de acesso. Os desenvolvedores acessam o sistema com uma conta “administrador”, um usuário que está dentro de um grupo com todas as permissões.
O problema é que isso não será mais suficiente, teremos algumas telas do sistema que um usuário não poderá ter permissão. Nossa equipe pensou em resolver o problema com a criação de uma nova classe, Administrador. Após pensar em inúmeras questões que devem ser consideradas, pensamos em três formas de fazer isso:
Solução 1
Usuario (classe concreta no Java e abstrata no Hibernate)
UsuarioComum estende Usuario
UsuarioAdministrador estende Usuario
Solução 2
Usuario (classe abstrata)
UsuarioComum estende Usuario
UsuarioAdministrador estende Usuario
Solução 3
Usuario (classe concreta)
Administrador estende Usuario
Imagino que essa seja uma situação comum e muitos dos usuários do GUJ já tenham vivenciado isso. Alguém poderia dar uma luz? 
Abraços a todos!
