Estou com uma dificuldade de montar uma estrutura bem específica, gostaria de trocar alguma idéia, ou ver se alguem tem alguma sugestão, ou ainda algum link de como trabalhar com estruturas mais chatas.
A estrutura é o seguinte:
:arrow: Tenho grupo q permite n subgrupos.
:arrow: Um grupo possui n propriedade.
:arrow: As propriedades de um grupo são definidas pelas proprias propriedades se houver e todas as propriedades do grupos que estão acima dele (em linha direta).
:arrow: Uma propriedade possui n valores, serve para restringir os valores possíveis e estes valores mudam de acordo com o grupo. Ou seja uma propriedade de um grupo tem determinados valores, a mesma propriedade num outro grupo pode ter valores diferentes.
// grupos e subgruposclassGrupo{privateSet<Grupo>subGrupo;}// Propriedades de grupo// Valores de uma propriedadeclassModel{privateMap<Grupo,Set<Propriedade>>propriedades;privateMap<Propriedade,Set<Valor>>valores;}
O problema é q alguns grupos possuem valores diferentes para a mesma propriedade.
Exemplo:
Propriedade: Cor
Grupo 1, Cor: Azul, Verde
Grupo 2, Cor: Azul, Amarelo
Provavelmente tratando Valor como ValueObject
aoqfonseca
Se eu entendi bem o seu problema, acredito que no seu modelo de classe vamos ficar com duas entidades:
Grupo
Propriedades
Com um grupo pode conter 0 ou mais outros grupos e pode conter 0 ou mais propriedades, ficamos com a classe grupo da seguinte forma: