Projeto baseado no laboratório de Padrões de Projeto (Design Patterns) da DIO, com foco na aplicação prática dos padrões utilizando Java Puro.
Além da reprodução da estrutura original, foram aplicadas melhorias de organização, legibilidade e boas práticas de código.
Demonstrar a aplicação prática dos padrões:
- Singleton
- Strategy
- Facade
Utilizando conceitos fundamentais de orientação a objetos e organização de código.
Garante que uma classe tenha apenas uma instância durante a execução da aplicação.
Implementações: - Eager - Lazy - Lazy Holder
Permite alterar o comportamento de um objeto em tempo de execução através de composição.
Componentes: - Interface Comportamento - Implementações concretas de
comportamento - Classe Robo como contexto
Fornece uma interface simplificada para interação com múltiplos subsistemas.
Componentes: - Classe Facade - Integração com CrmService e CepApi
Durante a refatoração foram aplicadas as seguintes melhorias:
- Organização da classe principal (
Main) - Separação de responsabilidades
- Padronização de nomenclatura
- Uso adequado de
finale constantes - Remoção de código redundante
- Validações básicas de entrada
- Melhor formatação de saída no console
- Comentários explicativos sobre os padrões
one.digitalinnovation.gof
├── facade
├── singleton
├── strategy
├── subsistema1.crm
├── subsistema2.cep
└── Main.java
- Java 11 ou superior
Execute a classe:
Main.java
Ou via terminal:
javac -d bin src/**/*.java
java -cp bin one.digitalinnovation.gof.Main- Aplicação prática de padrões de projeto clássicos
- Organização e refatoração de código legado
- Estruturação de projeto Java
- Boas práticas de legibilidade e padronização
Projeto desenvolvido como parte do desafio de Padrões de Projeto da DIO.