Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/erikbernard/loja-java-pattern-design-application
https://github.com/erikbernard/loja-java-pattern-design-application
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/erikbernard/loja-java-pattern-design-application
- Owner: erikbernard
- Created: 2023-07-22T19:57:52.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-23T00:31:43.000Z (over 1 year ago)
- Last Synced: 2023-07-23T01:29:33.081Z (over 1 year ago)
- Language: Java
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
**Design Patterns**
## Introdução
Este repositório contém informações sobre Design Patterns (padrões de projeto), soluções comprovadas para problemas de design de software que promovem a reutilização de código, a flexibilidade e a manutenção fácil. Abaixo estão resumidos os principais padrões abordados neste repositório.
## Padrões de Projeto
Design Patterns, ou padrões de projeto, são soluções comprovadas e recorrentes para problemas de design de software. Eles fornecem abstrações e guias que ajudam os desenvolvedores a criar sistemas mais flexíveis, extensíveis e de fácil manutenção, seguindo boas práticas e princípios de programação.### 1. Strategy
Permite definir uma família de algoritmos, encapsulá-los e torná-los intercambiáveis, proporcionando flexibilidade na execução de diferentes comportamentos em tempo de execução.
### 2. Chain of Responsibility
Encadeia objetos receptores que têm a chance de processar uma solicitação, permitindo a separação de remetentes e destinatários e evitando o acoplamento entre eles.
### 3. Template Method
Define a estrutura de um algoritmo em uma classe base, permitindo que as subclasses implementem etapas específicas sem alterar a estrutura geral.
### 4. State
Permite que um objeto altere seu comportamento quando seu estado interno muda, encapsulando os estados em classes separadas e facilitando a adição de novos estados.
### 5. Command
Encapsula uma solicitação como um objeto, permitindo que você parametrize clientes com diferentes solicitações, enfileire ou registre solicitações e suporte operações reversíveis.
### 6. Observer
Define uma dependência um-para-muitos entre objetos, para que quando um objeto mude de estado, todos os seus dependentes sejam notificados e atualizados automaticamente.
### 7. Adapters para reutilizar dependências
Permite que interfaces incompatíveis trabalhem juntas, convertendo a interface de uma classe em outra interface esperada pelos clientes.
### 8. Mais de um imposto com Decorators
Permite adicionar dinamicamente comportamentos adicionais a objetos, evitando a necessidade de criar subclasses para cada combinação possível.
### 9. Compondo orçamentos com Composite
Composição hierárquica de objetos em uma estrutura de árvore para tratar objetos individuais e compostos de maneira uniforme.
### 10. Facade para gerar pedidos
Fornece uma interface simplificada para um sistema complexo, tornando mais fácil para os clientes interagirem com ele sem precisar entender sua complexidade interna.
### 11. Proxy para cache
Controla o acesso a um objeto, atuando como intermediário, armazenando o resultado da operação cara em cache para reutilização futura.
## Conclusão
Os Design Patterns apresentados neste repositório oferecem abstrações e guias valiosos para melhorar o design de software, promovendo a reutilização de código e a manutenção fácil. Ao incorporar esses padrões em nossos projetos, podemos construir sistemas mais flexíveis, extensíveis e robustos, seguindo boas práticas e princípios de programação.