💻 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.