🧩 Exercícios: Modelagem Rica de Domínio: Enumerações (enum) e Composição
Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 08.1 — Enum com Atributos, Construtor e Métodos Customizados
Contexto: Enum com Atributos, Construtor e Métodos Customizados no contexto de Modelagem Rica de Domínio: Enumerações (enum) e Composição.
Requisitos de Execução:
- Criar enum
StatusPedidocontendo código numérico e descrição formatada.
Resultado Esperado
Enum instanciado com atributos de domínio ricos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_08_1_SeuNome - Envie na tarefa:
Atividade Cap 08 - Modelagem Rica de Domínio: Enumerações (enum) e Composição
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public enum StatusPedido {
PENDENTE(1, "Aguardando Pagamento"),
PROCESSANDO(2, "Em Processamento"),
FINALIZADO(3, "Pedido Entregue");
private final int codigo;
private final String descricao;
StatusPedido(int c, String d) { this.codigo = c; this.descricao = d; }
public String getDescricao() { return descricao; }
}
🔍 Nível 2: Prática
Problema 08.2 — Composição de Objetos (Relacionamento Tem-Um)
Contexto: Composição de Objetos (Relacionamento Tem-Um) no contexto de Modelagem Rica de Domínio: Enumerações (enum) e Composição.
Requisitos de Execução:
- Modelar classe
Pedidocomposta porClientee lista deItemPedido.
Resultado Esperado
Grafo de objetos montado através de composição orientada a objetos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_08_2_SeuNome - Envie na tarefa:
Atividade Cap 08 - Modelagem Rica de Domínio: Enumerações (enum) e Composição
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.util.ArrayList;
import java.util.List;
public class Pedido {
private String cliente;
private List<String> itens = new ArrayList<>();
public Pedido(String cliente) { this.cliente = cliente; }
public void adicionarItem(String item) { itens.add(item); }
public int getTotalItens() { return itens.size(); }
}
⚡ Nível 3: Integração
Problema 08.3 — Enum com Métodos Abstratos e Comportamentos Polimórficos
Contexto: Enum com Métodos Abstratos e Comportamentos Polimórficos no contexto de Modelagem Rica de Domínio: Enumerações (enum) e Composição.
Requisitos de Execução:
- Criar enum
OperacaoAritmeticacom método abstratoaplicar(double x, double y)implementado por cada constante.
Resultado Esperado
Comportamento polimórfico distribuído entre constantes de enum.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_08_3_SeuNome - Envie na tarefa:
Atividade Cap 08 - Modelagem Rica de Domínio: Enumerações (enum) e Composição
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public enum Operacao {
SOMA { public double aplicar(double x, double y) { return x + y; } },
SUBTRACAO { public double aplicar(double x, double y) { return x - y; } };
public abstract double aplicar(double x, double y);
}
🏆 Nível 4: Desafio Corporativo
Problema 08.4 — Padrão State com Enums para Transições de Estado
Contexto: Padrão State com Enums para Transições de Estado no contexto de Modelagem Rica de Domínio: Enumerações (enum) e Composição.
Requisitos de Execução:
- Implementar máquina de estados finita diretamente em enum validando transições permitidas.
Resultado Esperado
Transição de estado validada pelo enum do domínio.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_08_4_SeuNome - Envie na tarefa:
Atividade Cap 08 - Modelagem Rica de Domínio: Enumerações (enum) e Composição
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public enum FluxoFatura {
CRIADA, EMITIDA, PAGA;
public boolean podePagar() { return this == EMITIDA; }
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |