Padrões de Projeto em Python
Material de estudo sobre padrões de projeto em Python com código, descrição e em pt-br
| Padrões Comportamentais | Se concentram nos algoritmos e atribuições de responsabilidades | |
|---|---|---|
| Chain of Responsibility | Nos permite aplicar uma lógica sequencial de forma dinâmica | |
| Command | Executa uma sequência de comandos em cima de algum dado | |
| Interpreter | Quando precisamos interpretar diversas operações | |
| Iterator | Uma maneira de acessar elementos de um objeto sem expor o conteúdo todo | |
| Mediator | Encapsula a lógica de comunicação entre um conjunto de objetos | |
| Memento | Guardar um estado que possa ser restaurado futuramente | |
| Observer | Criar uma lista de observadores interessados pela criação de um objeto | |
| State | Define um conjunto de estados e os mesmos possuem uma ordem bem definida | |
| Strategy | Passa como parâmetro uma função (estratégia) para outro método | |
| Template Method | Classes abstratas para abstrair métodos em comum entre diversas classes | |
| Visitor | Permite navegar pelos elementos de uma estrutura de dados |
| Padrões de Criação | São aqueles que abstraem ou adiam o processo de criação dos objetos | |
|---|---|---|
| Abstract Factory | Cria um ou mais métodos de fábrica para criar uma família de objetos relacionados | |
| Builder | Recebe parâmetros, verifica a validade e até definir parâmetros padrões | |
| Factory Method | Permite expor métodos ao cliente para criar novos objetos | |
| Monostate (Borg) | Cria mais de uma instância de uma classe mas todos os objetos tem o mesmo estado | |
| Prototype | O padrão prototype é um padrão utilizado basicamente para clonar objetos | |
| Singleton | Garante que apenas um objeto de uma determinada classe seja criado |
| Padrões Estruturais | Se preocupam com a forma como classes e objetos são compostos | |
|---|---|---|
| Adapter | Embrulha um objeto em um adaptador para torná-lo compatível com outras classes | |
| Bridge | Dissocia uma abstração de sua implementação para que possam variar | |
| Composite | Permite tratar objetos individuais de forma uniforme | |
| Decorator | Permite compor/decorar os parâmetros de forma dinâmica | |
| Facade | Promove o desacoplamento da implementação com vários clientes | |
| Flyweight | Minimiza o uso de custos computacionais compartilhando dados entre objetos | |
| Proxy | Um objeto agente que encapsula o objeto que está realmente servindo |
Contribuindo
Se você tem interesse em contribuir com o projeto
Referências
- Curso Design Patterns Python I: Boas práticas de programação. Alura Online.
- Curso Design Patterns Python II: Boas práticas de programação. Alura Online.
- Aprendendo Padrões de Projeto em Python. Chetan Giridhar. Novatec.
- Design Patterns for Humans
- Design Patterns: Refactoring Guru
- Padrões de Projeto de Software

