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