Loading repository data…
Loading repository data…
DevNinee / repository
Este projeto consiste em um sistema completo para venda de ingressos de shows desenvolvido em Java, com foco na aplicação dos principais padrões GRASP .
Atividade prática de aplicação dos padrões GRASP em Java.
Esse é um projeto didática de um sistema de vendas de ingressos para shows, estruturado para demonstrar decisões de design baseadas em GRASP (Information Expert, Creator, Controller, Indirection, Low Coupling, High Cohesion).
com.example.model.Ingresso — representa um tipo de ingresso (nome, preço, quantidade disponível).com.example.model.Compra / ItemCompra — agregam itens e calculam totais.com.example.controller.CompraController — orquestra fluxos de compra e interação entre services/repositories.com.example.repository.*Repository — classes de persistência em memória (Maps) para clientes, ingressos e compras.com.example.service.*Service — camada de serviço que encapsula operações e usa os repositórios.com.example.SistemaIngressosShows — classe de execução/demonstração (main) que simula compras com dados de exemplo.Para explicações estendidas sobre por que cada padrão GRASP foi usado, veja PATTERNS.md na raiz do projeto.
Resumo rápido (veja PATTERNS.md para detalhes e exemplos de código):
Compra, Ingresso).CompraController, services).CompraController recebe operações de alto nível e coordena serviços e repositórios.controller / service / repository / model) e classes com responsabilidades claras.O SistemaIngressosShows já contém um fluxo de demonstração com dados de exemplo (clientes e compras). A execução produz mensagens de: listagem de ingressos, fluxo de compra para duas compras de exemplo, resumo de vendas e atualização de estoque.
Trecho representativo da saída de demonstração:
SISTEMA DE VENDAS DE INGRESSOS — Aplicando Padrões GRASP
--- 1. CRUD de Ingressos ---
[READ] Ingressos disponíveis:
Ingresso [Camarote] R$ 380,00 - Disponível: 20
Ingresso [VIP] R$ 220,00 - Disponível: 40
Ingresso [Pista] R$ 120,00 - Disponível: 100
=== NOVA COMPRA INICIADA ===
Número: C0001
Cliente: Ana Souza
-> Item adicionado com sucesso!
-> Compra registrada no sistema!
=== COMPRAS REALIZADAS ===
... (resumo e total de vendas) ...
FIM DA DEMONSTRAÇÃO
Recomendo usar Maven (projeto já contém pom.xml) e JDK 17+. Alternativamente você pode compilar manualmente, mas o fluxo abaixo usa Maven.
pom.xml):cd /caminho/para/Atividade_GRASP
mvn -DskipTests=false test
com.example.SistemaIngressosShows):mvn -DskipTests=true compile exec:java -Dexec.mainClass=com.example.SistemaIngressosShows
Saída esperada: listagem de ingressos; duas compras de exemplo (C0001 e C0002) registradas; resumo financeiro com total de vendas (R$ 1580,00 no cenário de demonstração) e estoque atualizado.
Se preferir executar sem Maven (compilação manual):
# compilar todas as classes Java (ajuste caminhos se necessário)
javac -d out $(find src/main/java -name "*.java")
# executar
java -cp out com.example.SistemaIngressosShows