Capítulo 08: Modelagem Rica de Domínio: Enumerações (enum) e Composição de Objetos
Especialização em Sistemas com Java 21 LTS • Capítulo 08
🗺️ Mapa Conceitual do Tópico
classDiagram
class StatusContrato {
<<enumeration>>
RASCUNHO
EM_VIGENCIA
SUSPENSO
FINALIZADO
}
class Contratante {
-String cnpj
-String razaoSocial
+getCnpj() String
+getRazaoSocial() String
}
class ContratoB2B {
-String idContrato
-Contratante contratante
-double valorMensal
-StatusContrato status
+ativar() void
}
ContratoB2B o-- Contratante : Composição (Tem-Um)
ContratoB2B --> StatusContrato : Estado do Contrato
✨ 1. Enumerações Ricas (enum) em Java
Em Java, enum é um tipo de classe especial que pode conter atributos, construtores privados e métodos próprios, garantindo segurança de tipos (Type-Safety) em tempo de compilação.
🧩 2. Composição de Objetos (“Tem-Um”)
Composição é a relação de associação onde um objeto complexo é construído a partir de referências para outros objetos menores, promovendo alto reaproveitamento e baixo acoplamento.
💻 Exemplo Prático e Compilável em Java 21
// ContratoB2B.java - Modelagem de Domínio com Enum e Composição
package com.empresa.contratos;
public class ContratoB2B {
public enum StatusContrato { RASCUNHO, VIGENTE, CANCELADO }
public record Contratante(String cnpj, String razaoSocial) {}
private final String idContrato;
private final Contratante contratante;
private final double valorMensal;
private StatusContrato status;
public ContratoB2B(String idContrato, Contratante contratante, double valorMensal) {
this.idContrato = idContrato;
this.contratante = contratante;
this.valorMensal = valorMensal;
this.status = StatusContrato.RASCUNHO;
}
public void ativar() {
if (this.status != StatusContrato.RASCUNHO) throw new IllegalStateException("Contrato não está em rascunho.");
this.status = StatusContrato.VIGENTE;
}
public StatusContrato getStatus() { return status; }
}
🔗 Recursos Pedagógicos do Capítulo 08
| Recurso Didático | Finalidade | Link de Acesso |
|---|---|---|
| 📊 Slides de Aula | Apresentação visual interativa com Dark Mode e suporte a teclado | Ver Slides |
| 🧠 Quiz Formativo | Teste interativo de fixação com feedback imediato por alternativa | Fazer Quiz |
| 💻 Exemplos de Código | Demonstrações funcionais compiláveis com saída no console | Ver Exemplos |
| 🧩 Exercícios em 4 Níveis | Lista progressiva de fixação com gabarito em bloco colapsável | Resolver Exercícios |
| 📅 Capítulo Anterior | 📚 Sumário de Tópicos | 🧬 Próximo Capítulo |