Tenho uma classe Equipamento.
Mas Equipamento pode ser Equipamento de Cliente ou Equipamento de Grupo…
A maioria dos atributos e métodos são comuns aos dois, mas existem alguns que são especificos para cada caso.
Imaginei ter uma superclasse Equipamento e outras duas EquipamentoCliente e EquipamentoGrupo que seria filhas da classe Equipamento… essa seria a implementação correta ?
Outra dúvida é na hora de persistir esses dados… eu criei somente uma tabela Equipamento e nela um campo para identificar se é Equipamento de Cliente ou de Grupo, vocês tem outra sugestão ?
Vc tem nesse caso a estratégia de uma tebela para toda hierarquia, mas procure tb pelas estratégias de uma tabela para cada classe concreta, e uma tabela para cada classe (joined subclass).
Vc pode fazer como disse: cria uma classe principal e duas que herdam as funcionalidades dela, ou você pode Criar uma interface Equipamento e fazer com que suas classes equipamentocliente equipamentogrupo implementem essa interface.
Assim como o pcalcado disse, não se preocupe com as tabelas agora. Defina primeiro como irá implementar as classes.
[quote=luciene.silva]Vc pode fazer como disse: cria uma classe principal e duas que herdam as funcionalidades dela, ou você pode Criar uma interface Equipamento e fazer com que suas classes equipamentocliente equipamentogrupo implementem essa interface.
Assim como o pcalcado disse, não se preocupe com as tabelas agora. Defina primeiro como irá implementar as classes.[/quote]
deixa um DBA ler esse post… huahuahua (brincadeirinha)…
Estou trabalhando nesse problema e parece que agora piorou !
Tenho 1 Equipamento que pode ser utilizado em N grupos, e 1 Grupo pode utilizar N equipamentos…
Visualizei um relacionamento N:N, onde normalmente existe uma tabela Equipamento (onde pk = idEquipamento), uma tabela Grupo (onde pk = idGrupo) e uma tabela EquipamentoGrupo (onde a pk seria composta por idEquipamento+idGrupo).
Só não consigo definir como ficarão as classes para representar essa estrutura…
Minha idéia:
-Na classe Grupo terei um atributo do tipo List , que trará uma lista dos equipamentos.
Mas e ai… na classe Equipamento terei tb um List .
Eu tenho as tres tabelas criadas conforme falei acima e pedi para o NetBeans criar uma Classe de Entidade de Banco de Dados e selecionei a tabela EquipamentoGrupo, ele criou as seguintes classes:
Equipamento e Grupo - em cada uma ele criou um atributo do tipo:
- [b]EquipamentoGrupo extends Equipamento[/b]
atributo especifico do eq. grupo 1
atributo especifico do eq. grupo 2
- [b]EquipamentoCliente extends Equipamento[/b]
atributo especifico do eq. cliente 1
atributo especifico do eq. cliente 2
Crie JavaBeans para as 3.
Dicas pessoais:
Posso ser meio arcaico, mas não costumo usar muito ferramentas visuais para criar as classes. É bem simples e tu pode criar bem facil com um “generate getters and setters” do eclipse, no caso do netBeans certamente tem esse down RAD tbm.
Se veio do VB.NET / C#.NET esqueça os DataSet’s ou possíveis variações dele criadas e adaptadas para o Java. Ou baixa 100% do nível, ou sobe 100% do nível. meio termo é complicado.