Skip to content

💻 Padrões de Projeto em Python

License

Notifications You must be signed in to change notification settings

kelvins/design-patterns-python

Repository files navigation

💻 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 ComportamentaisSe concentram nos algoritmos e atribuições de responsabilidades
🔗Chain of ResponsibilityNos permite aplicar uma lógica sequencial de forma dinâmica
👮CommandExecuta uma sequência de comandos em cima de algum dado
💬InterpreterQuando precisamos interpretar diversas operações
IteratorUma maneira de acessar elementos de um objeto sem expor o conteúdo
👽MediatorEncapsula a lógica de comunicação entre um conjunto de objetos
💾MementoGuardar um estado que possa ser restaurado futuramente
😎ObserverCriar uma lista de observadores interessados pela criação de um objeto
💢StateDefine um conjunto de estados que possui uma ordem definida
💡StrategyPassa como parâmetro uma função (estratégia) para outro método
📒Template MethodClasses ABC que abstraem métodos em comum entre diversas classes
🏃VisitorPermite navegar pelos elementos de uma estrutura de dados
Padrões de CriaçãoSão aqueles que abstraem ou adiam o processo de criação dos objetos
🔨Abstract FactoryCria um ou mais métodos de fábrica para criar uma família de objetos
👷BuilderRecebe parâmetros, verifica a validade e até definir parâmetros padrões
🏭Factory MethodPermite 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
🐑PrototypeO padrão prototype é um padrão utilizado basicamente para clonar objetos
💎SingletonGarante que apenas um objeto de uma determinada classe seja criado
Padrões EstruturaisSe preocupam com a forma como classes e objetos são compostos
🔌AdapterEmbrulha um objeto para torná-lo compatível com outras classes
🚡BridgeDissocia uma abstração de sua implementação para que possam variar
🌿CompositePermite tratar objetos individuais de forma uniforme
🎨DecoratorPermite compor/decorar os parâmetros de forma dinâmica
📦FacadePromove o desacoplamento da implementação com vários clientes
🍃FlyweightMinimiza o uso de custos computacionais compartilhando dados entre objetos
🎱ProxyUm objeto agente que encapsula o objeto que está realmente servindo

👯 Contribuindo

Se você tem interesse em contribuir com o projeto 😍 por favor leia o documento CONTRIBUTING.

📖 Referências

close