🏗️ Diagrama de Classes - Relacionamentos
O Diagrama de Classes descreve a estrutura estática do sistema, definindo quais classes existem e como elas se relacionam logicamente entre si. É a base para a criação de Entidades em frameworks como Hibernate ou JPA.
🏗️ Classe vs. Tabela de Banco de Dados
[!IMPORTANT] 💡 Não são a mesma coisa: Uma classe não é obrigatoriamente uma tabela de banco de dados. Enquanto tabelas armazenam registros estáticos, as classes residem em memória RAM e possuem métodos (comportamentos). No desenvolvimento moderno, usamos ORMs para mapear um ao outro.
🔗 Tipos de Relacionamentos (Associações)
As classes colaboram entre si para realizar as funcionalidades do sistema. Os principais tipos de associação são:
1. 🤝 Associação Binária
Conecta duas classes distintas, indicando que objetos de uma classe podem se comunicar com objetos da outra.
classDiagram
class Cliente {
-String nome
-String endereco
}
class Cidade {
-String nome
-String UF
}
Cliente "0..*" -- "1" Cidade : Mora em
2. 🔄 Associação Unária (Reflexiva)
Ocorre quando um objeto de uma classe se relaciona com outro objeto da mesma classe. Um exemplo clássico é a relação de Gestão em um time.
classDiagram
class Funcionario {
-int matricula
-String nome
}
Funcionario "0..*" -- "0..1" Funcionario : Gerencia
📊 Multiplicidade (Cardinalidade)
A multiplicidade indica quantos objetos de uma classe podem estar ligados a um único objeto da outra classe envolvida:
| Multiplicidade | Significado na Engenharia |
|---|---|
| 0..1 | Zero ou exatamente um. Relacionamento opcional. |
| 0..* | Zero ou muitos (Asterisco). Uma coleção de objetos (List/Set) opcional. |
| 1..* | Um ou muitos. Exige ao menos uma ligação obrigatória. |
| 1 | Exatamente um. Relacionamento obrigatório e único. |