Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🏗️ 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:

MultiplicidadeSignificado na Engenharia
0..1Zero 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.
1Exatamente um. Relacionamento obrigatório e único.