Bom galera, minha dúvida é o seguinte.
Tenho um WebService que será implementado de duas formas, uma internamente na empresa e uma em um ClientWeb.
Tanto no ClientInterno quanto no ClientWeb eu retorno o mesmo objeto, porém no ClientWeb eu preciso que o objeto tenha algumas limitações, e no interno contenha os dados completos.
Bom, vamos aos exemplos:
Eu tenho uma interface de Professor, que será usada para o ClientWeb
public interface IProfessor{
String getNome();
}
E tenho uma interface de Professor Interno, que conterá todos os dados do objeto:
public interface IProfessorInternal extends IProfessor{
String getTelefone();
}
Classes de utilização:
public class Professor implements IProfessor{
public String getNome(){
return "Teste";
}
}
public class ProfessorInternal extends Professor implements IProfessorInternal{
public String getTelefone(){
return "3923";
}
}
Internamente, no meu webservice, eu sempre estrarei tratando de IProfessorInternal, pois temos todas as informações necessárias e fora do meu service eu terei o tratamento para dizer o que será buscado pelo programa.
Tenho duas dúvidas:
1° - Estou implementando as interfaces e suas implementações da forma certa?
2° - Quando eu for chamar esses objetos fora do meu webservice, se eu instanciar um IProfessor, mesmo tendo um IProfessorInternal no meu webservice, eu irei serializar apenas os dados de um IProfessor ou tudo será trazido pelo programa? Pois dessa forma o ClientWeb teria acesso aos dados do ProfessorInternal apenas fazendo um cast do objeto.
Consegui ser claro o suficiente nas minhas dúvidas e na explicação dos meus problemas? Fico no aguardo de ajuda, idéias e críticas.