11.1 – Um Modelo de Pagamentos com Java 8
Neste trecho, o livro apresenta um exemplo prático de e-commerce para demonstrar o uso da nova API de datas (java.time) e outras boas práticas com Java 8. A ideia é simular uma loja digital que vende arquivos como músicas, vídeos e imagens.
A estrutura do modelo é simples, mas permite aplicar os conceitos aprendidos:
🛍️ Classes do modelo
Product – Produto digital com nome, caminho do arquivo e preço
Customer – Cliente da loja com apenas o nome
Payment – Pagamento feito por um cliente, com data e produtos comprados
👥 Criando clientes
🎧 Criando produtos digitais
💳 Criando pagamentos com java.time
📝 Observações
- O código usa a nova API java.time (LocalDateTime, DateTimeFormatter) para tratar e formatar datas de forma clara e fluente.
- O uso de Collections.unmodifiableList garante que a lista de produtos em um pagamento não seja alterada depois de criada.
- A modelagem é propositalmente simples, com espaço para expansão (por exemplo, armazenar os pagamentos no cliente).
- O uso de Path representa o caminho do arquivo no disco ou servidor local, podendo ser facilmente substituído por URL se necessário.
O que essa classe faz:
Define três classes de domínio: Product, Customer, Payment.
Cria exemplos de clientes e produtos.
Cria pagamentos associando clientes aos produtos em datas distintas.
Imprime as informações de pagamento no console.