Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Diferenças entre Associação, agregação e composição?

Quais são as diferenças entre Associação, agregação e composição? Elas tem semelhança com os tipos de relacionamentos entre tabelas? 1 para 1, 1 para muitos, muitos para muitos?

5 respostas
solução

Sobre a diferença entre associação, agregação e composição, eu consigo responder.

Associação: Objeto A depende de B. São independentes entre eles, mas se relacionam em algum momento. (Professor e aluno, são independentes, mas um professor pode ensinar a vários alunos e assim ter uma relação entre eles).

Agregação: Objeto A consiste de B (O departamento contém professores. Se o objeto Departamento deixar de existir, isso não destruirá o objeto professor).

Composição: Objeto A consiste de B e gerencia o ciclo de vida de B. (Um prédio de apartamentos consiste de apartamentos, se o prédio deixar de existir, os apartamentos também deixarão).

Na agregação, a multiplicidade consiste em que um Objeto A pode ter 1 ou muitos Objetos B (Um time consiste de 1 ou vários atletas). A 1 - 1..* B

Na composição, a multiplicidade também é A 1 - 1..* B ou A 1 - 0..* B Uma sala contém uma ou mais portas A 1 - 1..* B Uma sala contém zero ou várias janelas A 1 - 0..* B

Uma classe não será obrigatoriamente uma tabela no seu banco de dados. Mas os conceitos de multiplicidade são os mesmos.

Eu fiz a seguinte modelagem:

https://drive.google.com/file/d/11yG4E5Yx0yIJrpgAJDk4TjgHm1W_aEz9/view?usp=sharing

Tabelas:

  • Professor
  • Disciplina
  • Turma
  • AulaPorTurma

Criei as classes:

  • Professor (associei com Disciplina)
  • Disciplina
  • Turma
  • Aula (associei com Turma e Professor).

O professor pode ministrar 1 ou 2 disciplinas.

Uma disciplina por turma só tem 1 professor.

Uma disciplina (no geral) pode tem 1 ou até 5 professores.

Uma turma tem 9 a 10 professores (1 para cada Disciplina).

As Aulas são do 1 até o 6 horário, 1 a 2 aulas por dia da semana.

Cada Disciplina tem sua CH Semanal, Bimestral e Anual.

O objetivo primário é o Controle de Horários de Aula Semanais. Aquela grade de horários.

Estou aprendendo como desenvolver com os conceitos de POO, trabalho a muito tempo com programação para web, mas foquei muio em Programação Estruturada e nas gambiarras.

Estou me habituando a produzir as classes.

Fala, Edson. Que tal você fazer os cursos de UML aqui na plataforma? Eles dão uma ajuda interessante na parte de modelagem de domínio.

Irei procurar agora os cursos sobre UML. Valeu pela dica. Por enquanto, estou conseguindo implementar as Classes, com os atributos, construtor, métodos de get e set. Fiz os relacionamentos entre as entidades "associando" as classes. Hoje irei focar na implementação dos métodos para ter acesso as aulas por dia da semana, aulas por disciplina, aulas por professor, etc...