Middle
Que padrões de design conhece?
sobes.tech IA
Resposta da IA
Criacionais:
- Método de Fábrica (Factory Method): Define uma interface para criar um objeto, mas permite às subclasses decidir qual a classe a instanciar.
- Fábrica Abstrata (Abstract Factory): Fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.
- Construtor (Builder): Separa a construção de um objeto complexo da sua representação, de modo que o mesmo processo de construção possa criar diferentes representações.
- Prototipo (Prototype): Cria novos objetos copiando uma instância existente.
- Singleton (Singleton): Garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela.
Estruturais:
- Adaptador (Adapter): Converte a interface de uma classe na interface que os clientes esperam.
- Ponte (Bridge): Divide uma abstração da sua implementação para que possam variar independentemente.
- Composto (Composite): Compõe objetos em estruturas de árvore para representar hierarquias parte-todo. Permite tratar objetos individuais e composições de forma uniforme.
- Decorador (Decorator): Adiciona responsabilidades a um objeto de forma dinâmica. É uma alternativa flexível à subclasse para estender funcionalidades.
- Fachada (Facade): Fornece uma interface unificada para um conjunto de interfaces em um subsistema. Define uma interface de alto nível que torna o subsistema mais fácil de usar.
- Flyweight (Flyweight): Usado para compartilhar eficientemente uma grande quantidade de objetos semelhantes.
- Proxy (Proxy): Fornece um objeto substituto que controla o acesso a outro objeto.
Comportamentais:
- Cadeia de Responsabilidade (Chain of Responsibility): Permite passar requisições sequencialmente por uma cadeia de manipuladores. Cada manipulador decide se processa ou passa a requisição adiante.
- Comando (Command): Encapsula uma requisição como um objeto, permitindo parametrizar clientes com diferentes requisições, enfileirar ou registrar requisições, e suportar operações de desfazer.
- Iterador (Iterator): Fornece uma maneira de acessar sequencialmente os elementos de um objeto agregado sem revelar sua representação interna.
- Mediador (Mediator): Define um objeto que encapsula como um conjunto de objetos interage. Promove um acoplamento fraco ao evitar referências explícitas entre objetos.
- Memento (Memento): Captura e externaliza o estado interno de um objeto sem violar sua encapsulação, permitindo que o objeto seja restaurado a esse estado posteriormente.
- Observador (Observer): Define uma dependência de um para muitos entre objetos, de modo que quando um muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.
- Estado (State): Permite a um objeto alterar seu comportamento quando seu estado interno muda. O objeto parece mudar de classe.
- Estratégia (Strategy): Define uma família de algoritmos, encapsula cada um e os torna intercambiáveis. Permite que o algoritmo varie independentemente dos clientes que o utilizam.
- Método Template (Template Method): Define o esqueleto de um algoritmo em uma operação, deixando alguns passos para as subclasses. Permite que subclasses redefinam certos passos do algoritmo sem alterar sua estrutura.
- Visitante (Visitor): Representa uma operação que deve ser realizada sobre os elementos da estrutura de objetos. Permite definir uma nova operação sem alterar as classes dos elementos sobre os quais opera.