Gente, em um caso uma classe “Atividade” tem relação de N:N com várias outras classes, isso é normal (está correto) ?. As vezes penso que estou usando a classe “Atividade” como um filtro, e me parece errado.
Contexto de exemplo: A pessoa vai selecionar um tipo de atividade, se a atividade escolhida for X, então vai ser feita em A. A atividade X pode ser feita em vários A e A pode receber vários X. Essa atividade em A gera vários dados, como por exemplo o dia em que foi feita a atividade.
Isso quer dizer que a classe Actividades é a superclasse de A,B,C,D…, A superclasse de ActividadeA,… B é superclasse de actividadeB, … C superclasse de actividadeC , D superclasse de actividadeD
Atividades A, B, C, etc seriam objetos, não classes. Então nesse diagrama de classes basta deixar a classe Atividade e mais nada, considerando esse contexto de Atividade sem mencionar nenhum requisito.
Isaura_Antonio
Seja mais explícito, com suas explanações ?
Isaura_Antonio
Desde o momento que criamos uma classe e instanciamos essa classe, elas se tornam um objeto… ou estou errada? A classe Actividades é mãe de A,B,C e D , A mãe de ActividadeA , B mãe de ActividadesC … assim por diante e essa UML refere -se ao conceito de herança.
javaflex1 like
Voce instancia um objeto da classe. O diagrama de classe é de classe, não é pra colocar uma caixa pra representar objeto.
Forçar herança sem necessidade é um dos maiores erros cometidos entre quem usa orientação a objetos.
São subclasses de Actividades, sim, repare nas setas e compare com o diagrama a cima…
javaflex
Sua visão é muito acadêmica, o que ele postou não existe.
Isaura_Antonio
Hamm, legal.
staroski1 like
Essas setas do diagrama que ele postou não são setas de herança.
Se fosse então Atividades teria 4 superclasses, o que não é válido no Java.
Java só tem herança múltipla de interfaces.
Na verdade esse diagrama parece que alguém usou diagrama de classes para desenhar um modelo entidade relacional.
Isaura_Antonio
O conceito de herança múltipla refere-se a subclasses que não podem ter mais que uma superclasse, ou ter mais que uma classe mãe, mas diferentes classes, podem ter a mesma mãe, logo sua proposição estaria errada, tenho o código deste diagrama que defende essa teoria, mesmo livros dizem isso!!
staroski1 like
Essa sua descrição aí é de herança simples.
Herança múltipla é o conceito de herança de duas ou mais classes. A linguagem Java possui apenas herança simples de classes, ou seja, uma classe só pode ter o extends de uma classe, entretanto uma classe pode ter o implements de diversas Interfaces e uma interface também pode ter o extends de diversas outras interfaces.