💻 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 |
| 👽 |
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 que possui uma ordem definida |
| 💡 |
Strategy |
Passa como parâmetro uma função (estratégia) para outro método |
| 📒 |
Template Method |
Classes ABC que abstraem 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 |
| 👷 |
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 |
| 1️⃣ |
Monostate (Borg) |
Cria mais de uma instância da 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 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 |
Se você tem interesse em contribuir com o projeto 😍 por favor leia o documento CONTRIBUTING.