Motivos de cada padrão de projeto Flashcards

1
Q

Criar classes que têm métodos em comum.

A

Factory Method.

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

Criar objetos que se enquadram em tipos e categorias.

A

Abstract Factory ou Prototype.

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

Criação de objetos com vários parâmetros opcionais.

A

Builder.

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

Criação de objetos cujo estado inicial não costumar variar muito.

A

Prototype.

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

Ajustar uma classe incompatível. Ex: tem uma biblioteca nova e o seu programa n aceita ela pois é pra uma versão mais antiga.

A

Adapter.

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

A estrutura de um objeto pode se tornar parecida com uma árvore pra baixo e você precisa rodar um comportamento recursivamente sobre todos os componentes de uma árvore de objetos.

A

Composite.

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

Não produzir inúmeras subclasses para suportar cada combinação. Dar funcionalidades apenas a um objeto específico, e não a todos (aí seria herança) e em tempo de execução. Também pode remover ela.

A

Decorator.

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

Executar operação parecida pra objetos com valores de atributos diferentes.

A

Strategy.

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

Tem objetos de determinadas classes de interfaces diferentes e se quer executar diferentes operações nelas, e a adição de novas operações é frequente.

A

Visitor.

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

A operação certa é decidida só vendo o resultado.

A

Chain of responsibility.

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

Tem que minimizar a comunicação com uma parte do código cuja lógica é difícil entender e, consequentemente, seria difícil usar seus recursos diretamente.

A

Facade.

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

Existe muitas dependências entre os clientes e as classes de implementação de uma abstração;

A

Facade.

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

Tem que redirecionar o acesso aos objetos pra, antes, verificar algo: autorização de acesso, tentar uma operação (método) alternativo que pode ser melhor, etc.

A

Proxy.

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

Um método repetido em classes cuja única semelhança é essa e algumas dessas classes já fazem herança, e não pode haver herança múltipla.

A

Command.

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

Precisa manipular os dados de uma lista, fila ou pilha em mais de um ponto no código ou, pior ainda, também precisa realizar algum filtro rápido ou alguma manipulação complexa.

A

Iterator.

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

Separar a lógica da função principal de uma classe.

A

Mediator.

17
Q

Se um objeto for alterado durante a execução, outros objetos têm que serem avisados e atualizados.

A

Observer.

18
Q

A maioria dos métodos têm que selecionar (com muitos if’s ou um grande switch case) uma operação apropriada dependendo do estado atual do objeto, e depois podemos ter que adicionar mais estados e métodos baseados em estados da classe.

A

State.

19
Q

Definir o esqueleto de um algoritmo usando operações abstratas e, assim, implementar partes invariantes de um algoritmo uma única vez.

A

Template Method.

20
Q

Quer dar à um objeto a funcionalidade de voltar à um estado interno anterior. Ex: lista de pedidos de compras, implementar “undo” à um texto,

A

Memento.

21
Q

Há uma loja virtual antiga e na hora de realizar um pedido o cálculo do frete está acoplado, então você tem por exemplo 3 transportadoras e código delas está todo junto. Uma alteração na chamada de alguma transportadora você pode acabar quebrando todo o componente de frete. A implementação é legada e provavelmente refatorar ele seja um trabalho longo e pode ser que você não tenha tempo para isso. O componente de Frete irá virar uma ponte de transferência de dados para o frete de cada transportadora.

A

Bridge.

22
Q

A instância de um objeto é consideravelmente custosa para o servidor, pois temos pouco recurso de hardware, e você precisa instanciar-lo algumas vezes. São 5, 10 tipos de objetos que necessitam de instância e essa instância é dada seguindo uma condição. É preciso, basicamente, uma junção do padrão Singleton com o padrão Factory.

A

Flyweight.