é correto usar interfaces em entidades?

3 respostas
R

Blz, galera

Tenho um dúvida. Tenho 5 entidades:

@Entity
public class Conhecimento implements Serializable { … }

@Entity
public class Treinamento implements Serializable { … }

@Entity
public class Experiencia implements Serializable { … }

@Entity
public class Certificacao implements Serializable { … }

@Entity
public class Habilidade implements Serializable { … }

Todas essas entidades possuem comportamentos em comum. Então criei uma interface chamada Competencia que contém dois métodos. Depois disso, alterei as entidades da seguinte forma:

@Entity
public class Conhecimento implements Competencia, Serializable { … }

@Entity
public class Treinamento implements Competencia, Serializable { … }

@Entity
public class Experiencia implements Competencia, Serializable { … }

@Entity
public class Certificacao implements Competencia, Serializable { … }

@Entity
public class Habilidade implements Competencia, Serializable { … }

O problema é que cada uma dessas entidades vai ter que implementar os dois métodos da interface e assim eu sujo minha entidade com métodos que não deveriam estar lá, pelo menos é o que eu acho. Estou correto ou posso colocar interfaces tranquilamente em Entidade?

Obrigado.

3 Respostas

romarcio

Acho que seria melhor então criar um SuperClasse Competencia e extende-la nas entidades.
Dai pode criar os métodos que achar necessário nelas e não se torna obrigado a implementa-los nas entidades que não vão utiliza-los.

R

Todas as entidades devem realmente possuir esses 2 métodos? Se não, você poderia criar 2 interfaces e implementar só uma das duas, ou as duas.

Não vejo problema em implementar interfaces não, desde que feito com critério.

R

Sim, todas as entidades devem possuir os dois métodos. O que haviam me dito é que eu deveria criar um outra classe, por exemplo:

@Entity
public class Treinamento2 extends Treinamento implements Competencia { … }

Assim, eu deixaria minha classe Treinamento intacta. Eu achei essa solução bem correta, só queria ter certeza de que é correta mesmo, pois pra tudo em web existe um padrão a ser seguido.

Criado 2 de setembro de 2010
Ultima resposta 2 de set. de 2010
Respostas 3
Participantes 3