Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.