How josevictorbdbr/designpatternsexercise works
This repository contains two independent Java design-pattern exercises. The insurance example accepts policy-specific inputs through a client and creator hierarchy, then emits policy details; the checkout example uses region-specific factories to select invoice, payment, and shipping implementations. The README identifies each Main class as an independently runnable exercise. Some implementations—especially insurance creators and the Brazil checkout factory—were not sampled, so their internal wiring is not expanded.
Main entry points: main.java Insurance Main · Main.java Checkout Main · Checkout.java Checkout · FabricaEUA.java US factory
Components 33
Insurance policies
- Insurance Main
src/main/java/com/josevictor/ex1/main.java - Client
src/main/java/com/josevictor/ex1/Cliente.java - Policy creator
src/main/java/com/josevictor/ex1/Criador.java - Auto creator
src/main/java/com/josevictor/ex1/CriadorAuto.java - Home creator
src/main/java/com/josevictor/ex1/CriadorResidencia.java - Life creator
src/main/java/com/josevictor/ex1/CriadorVida.java - Travel creator
src/main/java/com/josevictor/ex1/CriadorViagem.java - Policy base
src/main/java/com/josevictor/ex1/Apolice.java - Auto policy
src/main/java/com/josevictor/ex1/ApoliceAuto.java - Home policy
src/main/java/com/josevictor/ex1/ApoliceResidencia.java - Life policy
src/main/java/com/josevictor/ex1/ApoliceVida.java - Travel policy
src/main/java/com/josevictor/ex1/ApoliceViagem.java
Regional checkout
- Checkout Main
src/main/java/com/josevictor/ex2/Main.java - Order data
src/main/java/com/josevictor/ex2/Pedido.java - Checkout
src/main/java/com/josevictor/ex2/Checkout.java - Checkout factory
src/main/java/com/josevictor/ex2/FabricaCheckout.java - Brazil factory
src/main/java/com/josevictor/ex2/FabricaBrasil.java - US factory
src/main/java/com/josevictor/ex2/FabricaEUA.java - Germany factory
src/main/java/com/josevictor/ex2/FabricaAlemanha.java - Fiscal document
src/main/java/com/josevictor/ex2/DocumentoFiscal.java - Brazil invoice
src/main/java/com/josevictor/ex2/NotaFiscal.java - Sales invoice
src/main/java/com/josevictor/ex2/SalesInvoice.java - VAT invoice
src/main/java/com/josevictor/ex2/VATInvoice.java - Payment
src/main/java/com/josevictor/ex2/Pagamento.java - Credit card
src/main/java/com/josevictor/ex2/CartaoCredito.java - PIX
src/main/java/com/josevictor/ex2/Pix.java - SEPA debit
src/main/java/com/josevictor/ex2/SepaDirectDebit.java - Shipping label
src/main/java/com/josevictor/ex2/Etiqueta.java - Correios
src/main/java/com/josevictor/ex2/Correios.java - USPS
src/main/java/com/josevictor/ex2/USPS.java - Deutsche Post
src/main/java/com/josevictor/ex2/DeutschePost.java
Other components
- Exercise runner
- Exercise runner
Connections 26
- Exercise runner → Insurance Main: runs
- Insurance Main → Client: invokes
- Insurance Main → Auto creator: creates
- Insurance Main → Home creator: creates
- Insurance Main → Life creator: creates
- Insurance Main → Travel creator: creates
- Client → Policy creator: processes
- Exercise runner → Checkout Main: runs
- Checkout Main → Order data: creates
- Checkout Main → Brazil factory: selects
- Checkout Main → US factory: selects
- Checkout Main → Germany factory: selects
- Checkout Main → Checkout: invokes
- Checkout → Order data: processes
- Checkout → Checkout factory: requests products
- Checkout → Fiscal document: generates
- Checkout → Payment: processes
- Checkout → Shipping label: generates
- US factory → Sales invoice: creates
- US factory → Credit card: creates
- US factory → USPS: creates
- Germany factory → VAT invoice: creates
- Germany factory → SEPA debit: creates
- Germany factory → Deutsche Post: creates
- Brazil invoice → Order data: reads
- Sales invoice → Order data: reads