Modelagem Diagrama de Classes

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.

Segue um diagrama de exemplo:

Por favor, alguém me ajude com essa dúvida, já faz alguns dias que estou nisso rsrs.

1 curtida

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

Espero ter ajudado :blush:

Ficará assim:

package exercises;

Public class Actividades
{
// métodos e atributos
}

public class A extends Actividades
{

}
public class C extends Actividades
{
}
public class B extends Actividades
{
}
public class D extends Actividades
{
}

public class ActividadesA extends A
{
}
public class ActividadesB extends B
{
}
public class ActividadesC extends C
{
}
public class ActividadesD extends D
{
}

// Implementação da UML

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.

Seja mais explícito, com suas explanações ?

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.

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.

1 curtida

De uma olhada neste link e verás o quanto https://www.ateomomento.com.br/uml-diagrama-de-classes/

@javaflex

Estou falando do caso que ele apresentou. A, B, C não significa nada como classe.

São subclasses de Actividades, sim, repare nas setas e compare com o diagrama a cima…

Sua visão é muito acadêmica, o que ele postou não existe.

Hamm, legal.

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.

1 curtida

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!!

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.

1 curtida

Bem dito, mestre :clap::clap::clap:

Bem dito, mestre​:clap::clap::clap: