Padrões de Projeto (Design patterns) Flashcards

1
Q

O que são Design Patterns?

A

Design Patterns, ou padrões de projeto, são soluções gerais para problemas
recorrentes que surgem durante o desenvolvimento de software. Eles são uma forma de capturar as
melhores práticas e experiências de desenvolvedores anteriores, e fornecer uma estrutura validada
para a criação de software de alta qualidade e fácil manutenção. Padrões de projeto facilitam
a reutilização e podem ser usados em muitas situações diferentes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explique o padrão Singleton, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Singleton (Único):

O que faz: Garante que uma classe tenha apenas uma instância.
Para que serve: Fornece um ponto de acesso global para essa única instância.

Padrão Criacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Explique o padrão Factory Method, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Factory Method (Método de Fábrica):

O que faz: Define uma interface para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar.
Para que serve: Permite a criação de objetos de diferentes tipos, decididos pelas subclasses.

Padrão criacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explique o padrão Abstract Factory, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Abstract Factory (Fábrica Abstrata):

O que faz: Oferece uma interface para criar famílias de objetos relacionados sem especificar suas classes concretas.
Para que serve: Permite criar grupos de objetos relacionados de maneira flexível, sem se preocupar com suas implementações específicas.

Padrão criacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explique o padrão Builder, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Builder (Construtor):

O que faz: Separa a construção de um objeto complexo de sua representação, permitindo a criação de diferentes representações.
Para que serve: Facilita a construção de objetos complexos passo a passo, com flexibilidade na criação de diferentes versões do mesmo objeto.

Padrão criacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explique o padrão Prototype, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Prototype (Protótipo):

O que faz: Permite criar novos objetos copiando um objeto existente, em vez de criar do zero.
Para que serve: Facilita a criação de novos objetos com base em modelos existentes, economizando recursos de inicialização.

Padrão criacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explique o padrão Object Pool, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Object Pool (Piscina de Objetos):

O que faz: Evita o custo de inicialização e destruição de objetos, mantendo um conjunto de objetos inicializados prontos para uso.
Para que serve: Melhora o desempenho ao reutilizar objetos em vez de criar e destruir repetidamente, útil em situações onde a criação de objetos é cara.

Padrão criacional

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explique o padrão Adapter , e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Adapter (Adaptador):

O que faz: Permite que classes com interfaces incompatíveis trabalhem juntas, convertendo a interface de uma classe na interface esperada pelos clientes.
Para que serve: Facilita a integração de classes que, de outra forma, não poderiam trabalhar juntas devido a diferenças nas suas interfaces.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explique o padrão Bridge , e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Bridge (Ponte):

O que faz: Desacopla uma abstração de sua implementação, permitindo que ambas possam variar independentemente.
Para que serve: Proporciona flexibilidade ao separar a abstração da implementação, facilitando a extensão e modificação de ambos independentemente.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explique o padrão Composite, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Composite (Composto):

O que faz: Compor objetos em estruturas de árvore para representar hierarquias parte-todo, permitindo que os clientes tratem objetos individuais e composições de maneira uniforme.
Para que serve: Permite tratar objetos individuais e suas composições de maneira consistente, facilitando a manipulação de estruturas complexas.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique o padrão Decorator, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Decorator (Decorador):

O que faz: Anexa responsabilidades adicionais a um objeto dinamicamente, oferecendo uma alternativa flexível à herança para estender a funcionalidade.
Para que serve: Permite adicionar funcionalidades a objetos de forma dinâmica e flexível, sem a necessidade de criar subclasses para cada combinação de funcionalidades.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explique o padrão Facade, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Facade (Fachada):

O que faz: Fornece uma interface unificada para um conjunto de interfaces em um subsistema, simplificando o acesso e uso do subsistema.
Para que serve: Oculta a complexidade de um subsistema, oferecendo uma interface simplificada para os clientes.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Explique o padrão Flyweight, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Flyweight (Peso Mosca):

O que faz: Usa compartilhamento para suportar de forma eficiente um grande número de objetos de baixa granularidade, reduzindo a sobrecarga de criação e armazenamento.
Para que serve: Melhora a eficiência ao compartilhar partes comuns entre objetos, reduzindo a quantidade de dados duplicados.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explique o padrão Proxy, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Proxy (Proxy):

O que faz: Fornece um substituto ou espaço reservado para outro objeto, controlando o acesso ou adicionando outras responsabilidades ao objeto original.
Para que serve: Controla o acesso a um objeto ou adiciona funcionalidades adicionais sem modificar diretamente o objeto original.

Padrão estrutural

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Explique o padrão Strategy, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Strategy (Estratégia):

O que faz: Define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis.
Para que serve: Permite que um cliente escolha dinamicamente o algoritmo a ser usado, proporcionando flexibilidade na execução de diferentes estratégias.

Padrão comportamental

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Explique o padrão Observer, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Observer (Observador):

O que faz: Estabelece uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados.
Para que serve: Facilita a comunicação e atualização entre objetos, sendo útil quando a mudança em um objeto precisa ser refletida em outros objetos.

Padrão comportamental

17
Q

Explique o padrão State, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

State (Estado):

O que faz: Permite que um objeto altere seu comportamento quando seu estado interno muda.
Para que serve: Facilita a implementação de comportamentos específicos associados a diferentes estados de um objeto, evitando a necessidade de grandes blocos condicionais.

Padrão comportamental

18
Q

Explique o padrão Command, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Command (Comando):

O que faz: Encapsula uma solicitação como um objeto, permitindo a parametrização de clientes com diferentes solicitações e suporte para operações de desfazer e refazer.
Para que serve: Desacopla o remetente da solicitação do seu receptor, permitindo a execução de comandos sem a necessidade de saber a lógica exata de sua implementação.

Padrão comportamental

19
Q

Explique o padrão Iterator, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Iterator (Iterador):

O que faz: Fornece uma maneira de acessar elementos de uma coleção de objetos agregados sequencialmente sem expor sua representação subjacente.
Para que serve: Simplifica a iteração sobre elementos de uma coleção, tornando o código mais legível e desacoplando o cliente da implementação da coleção.

Padrão comportamental

20
Q

Explique o padrão Mediator, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Mediator (Mediador):

O que faz: Define um objeto que encapsula como um conjunto de objetos interage, promovendo o baixo acoplamento e evitando a referência direta entre eles.
Para que serve: Facilita a comunicação entre objetos de um sistema, reduzindo a dependência direta e melhorando a modularidade.

Padrão comportamental

21
Q

Explique o padrão Memento, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Memento (Memento):

O que faz: Captura e externaliza o estado interno de um objeto sem violar o encapsulamento, permitindo que seja restaurado posteriormente.
Para que serve: Permite salvar e restaurar o estado de um objeto em momentos específicos, útil para implementar operações de desfazer e refazer.

Padrão comportamental

22
Q

Explique o padrão Method, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Template Method (Método de Modelo):

O que faz: Define o esqueleto de um algoritmo em uma operação, deixando alguns passos para serem definidos pelas subclasses.
Para que serve: Facilita a criação de algoritmos reutilizáveis, com estrutura definida na classe base e detalhes implementados nas subclasses.

Padrão comportamental

23
Q

Explique o padrão Visitor, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Visitor (Visitante):

O que faz: Representa uma operação a ser executada nos elementos de uma estrutura de objeto, permitindo definir novas operações sem alterar as classes dos elementos.
Para que serve: Permite adicionar novas operações sem modificar a estrutura dos objetos, proporcionando flexibilidade na extensão do código.

Padrão comportamental

24
Q

Explique o padrão Chain of Responsibility, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Chain of Responsibility (Cadeia de Responsabilidade):

O que faz: Evita o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação.
Para que serve: Permite que vários objetos processem uma solicitação, garantindo que ela seja tratada por um objeto apropriado sem a necessidade de conhecer a cadeia completa de responsabilidade.

Padrão comportamental

25
Q

Explique o padrão Interpreter, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)

A

Interpreter (Interpretador):

O que faz: Dada uma linguagem, define uma representação para sua gramática junto com um interpretador que usa a representação para interpretar sentenças na linguagem.
Para que serve: Permite interpretar expressões ou linguagens específicas, útil em situações onde é necessário processar e executar comandos em uma linguagem personalizada.

Padrão comportamental