Please enable JavaScript.
Coggle requires JavaScript to display documents.
Padrões de Projeto - Coggle Diagram
Padrões de Projeto
🖼️Criacionais
-
Exemplos
Singleton
Garante uma única instância da classe na memória e um ponto de acesso global (Ex: Conexão com Banco)
-
-
Factory Method
Define uma interface para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar
Abstract Factory
Fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas
-
-
🏣 Estruturais
-
Exemplos
Decorator
Adiciona novos comportamentos e responsabilidades a um objeto dinamicamente (Ex: Café com leite e chantilly)
Bridge
Separa a abstração de uma classe da sua implementação, permitindo que as duas variem independentemente (ex: Separar forma de cor)
-
-
Composite
Compôes objetos em estruturas de árvore para representar hierarquias do tipo parte-todo. Permite tratar objetos individuais e composições de forma uniforme
Flyweight
Compartilha, de forma eficiente, grandes quantidades de objetos que possuem comportamento granular idêntico, economizando memória
Proxy
Fornece um objeto substituto ou intermediário (um "procurador") para controlar o acesso a outro objeto
-
-
⚙️ Comportamentais
Exemplos
Iterator
Percorre coleções de objetos sequencialmente sem expor a estrutura interna (Ex: Botão avançar da playlist)
-
Observer
Notifica múltiplos objetos automaticamente quando o objeto principal muda de estado (Ex: Inscrição com sininho)
Command
Encapsula uma requisição de negócio como um objeto independente (Ex: pedido do garçom para a cozinha)
Mediator
Centraliza a comunicação complexa entre objetos para reduzir o acoplamento direto (Ex: Torre de controle de aeroporto)
Strategy
Define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis em tempo de execução (Calcular frete por Sedex, PAC ou Azul)
State
Permite que um objeto altere o seu comportamento quando o seu estado interno muda, parecendo que mudou de classe (ex: Pedido do e-commerce: Pendente -> Pago -> Enviado)
Template Method
Define o esqueleto de um algoritmo em um método na classe pai, delegando alguns passos específicos para as subclasses preencherem
Chain of Responsibility
Evita o acoplamento mandando a requisição por uma corrente de objetos receptores. Cada objeto decide se processa a requisição ou passa para o próximo da fila. (Ex: Suporte técnico Nível 1 -> Nível 2 -> Nível 3)
Visitor
Permite separar um algoritmo/operação das estruturas de objetos sobre as quais ele opera, adicionando novas funções sem modificar as classes desses objetos
-
-
-
Soluções reutilizáveis para problemas comuns que ocorrem no desenvolvimento de software orientado a objetos