Design Patterns Flashcards

1
Q

O que são Design Patterns?

A

Design Patterns ou padrões de projetos são soluções generalistas para problemas recorrentes durante o desenvolvimento de um software. Não se trata de um framework ou um código pronto, mas de uma definição de alto nível de como um problema comum pode ser solucionado.

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

Design Patterns?

A

Design patterns são modelos que já foram utilizados e testados anteriormente, portanto podem representar um bom ganho de produtividade para os desenvolvedores.

Seu uso também contribui para a organização e manutenção de projetos, já que esses padrões se baseiam em baixo acoplamento entre as classes e padronização do código.

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

Creational Design Patterns

A
Abstract Factory
    Builder
    Factory Method
    Prototype
    Singleton
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Structural Design Patterns

A
Adapter
    Bridge
    Composite
    Decorator
    Façade
    Flyweight
    Proxy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Behavioral Patterns

A
Chain of Responsibility
    Command
    Interpreter
    Iterator
    Mediator
    Memento
    Observer
    State
    Strategy
    Template Method
    Visitor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Padrões arquiteturais

A
Interceptor
Model View Controler (MVC)
Model View ViewModel (MVVM)
Model View Presenter (MVP)
n-tier
Specification
Publish–subscribe
Inversion of control
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Outros Design Patterns

A
Rules Design Patterns
Dependency Injection
Intercepting filter
Lazy loading
Mock object
Method chaining
Inversion of control
Unit of Work
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Design Pattern Definição

A

Design patterns ou padrões de design são soluções já testadas para problemas recorrentes no desenvolvimento de software, que deixam seu código mais manutenível e elegante, pois essas soluções se baseiam em um baixo acoplamento.

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

Padrões do Design Patterns?

A

Padrões de Criação:Esses padrões de design fornecem uma maneira de criar objetos enquanto ocultam a lógica de criação, em vez de instanciar objetos diretamente usando o operador new. Isso dá ao programa mais flexibilidade para decidir quais objetos precisam ser criados para um determinado caso de uso;
•Padrões Estruturais:Esses padrões de design dizem respeito à classe e à composição do objeto. O conceito de herança é usado para compor interfaces e definir maneiras de compor objetos para obter novas funcionalidades;
•Padrões Comportamentais: Esses padrões de design se preocupam especificamente com a comunicação entre objetos;

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

Factory/ Fábrica

A

O padrão de fábrica é um dos padrões de design mais usados ​​em Java. Esse tipo de padrão de design se enquadra no padrão criacional, pois fornece um maneira de criar um objeto;
No padrão Factory, criamos objetos sem expor a lógica de criação ao cliente e nos referimos ao objeto recém-criado usando uma interface comum;

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

Abstract Factory/ Fábrica Abstrata

A

Os padrões de fábrica trabalham em torno de uma super-fábrica que cria outras fábricas;
Esta fábrica também é chamada de fábrica de fábricas. Esse tipo de padrão de design se enquadra no padrão criacional, pois fornece um maneira de criar um objeto;
No padrão Abstract Factory, uma interface é responsável por criar uma fábrica de objetos relacionados sem especificar explicitamente suas classes. Cada fábrica gerada pode fornecer os objetos conforme o padrão de fábrica;

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

Singleton

A

O padrão Singleton é um dos padrões de design mais simples em Java. Esse tipo de padrão de design se enquadra no padrão criacional;
Esse padrão envolve uma única classe responsável por criar um objeto, assegurando que apenas um único objeto seja criado. Essa classe fornece uma maneira de acessar seu único objeto que pode ser acessado diretamente sem a necessidade de instanciar o objeto da classe;

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

Builder/ Construtor

A

O padrão Builder cria um objeto complexo usando objetos simples e usando uma abordagem passo a passo. Esse tipo de padrão de design se enquadra no padrão criacional;
Uma classe Builder cria o objeto final passo a passo. Este construtor é independente de outros objetos;

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

Prototype/ Protótipo

A

Padrão de protótipo refere-se à criação de objetos duplicados, mantendo o desempenho em mente. Esse tipo de padrão de design se enquadra no padrão criacional;
Esse padrão envolve a implementação de uma interface de protótipo que informa para criar um clone do objeto atual. Esse padrão é usado quando a criação do objeto diretamente é cara. Por exemplo, um objeto deve ser criado após uma operação cara do banco de dados. Podemos armazenar em cache o objeto, retornar seu clone na próxima solicitação e atualizar o banco de dados conforme e quando necessário, reduzindo assim as chamadas ao banco de dados

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

Adapter/ Adaptador

A

O padrão do adaptador funciona como uma ponte entre duas interfaces incompatíveis. Esse tipo de padrão de design se enquadra no padrão estrutural, pois combina a capacidade de duas interfaces independentes;
Esse padrão envolve uma única classe responsável por unir funcionalidades de interfaces independentes ou incompatíveis;
Um exemplo da vida real pode ser um caso de leitor de cartão que atua como um adaptador entre o cartão de memória e um laptop. Você pluga o cartão de memória no leitor de cartões e no leitor de cartões no laptop para que o cartão de memória possa ser lido via laptop;

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

Bridge / Ponte

A

É usado quando precisamos separar uma abstração de sua implementação para que as duas possam variar independentemente. Esse tipo de padrão de design se enquadra no padrão estrutural, pois desacopla a classe de implementação e a classe abstrata, fornecendo uma estrutura de ponte entre eles;
Esse padrão envolve uma interface que atua como uma ponte que torna a funcionalidade de classes concretas independente das classes do implementador de interface;
Ambos os tipos de classes podem ser alterados estruturalmente sem se afetarem

17
Q

Filter/ Filtro

A

O padrão de filtro ou Criteria é um padrão de design que permite aos desenvolvedores filtrar um conjunto de objetos usando diferentes critérios e encadeando-os de maneira dissociada por meio de operações lógicas;
Esse tipo de padrão de design se enquadra no padrão estrutural, pois combina vários critérios para obter critérios únicos

18
Q

Composite/ Composição

A

O padrão de composição é usado onde precisamos tratar um grupo de objetos de maneira semelhante a um único objeto. O padrão compõe objetos em termos de uma estrutura em árvore para representar parte e toda a hierarquia. Esse tipo de padrão de design se enquadra no padrão estrutural, pois cria uma estrutura em árvore do grupo de objetos;
Esse padrão cria uma classe que contém um grupo de seus próprios objetos. Esta classe fornece maneiras de modificar seu grupo dos mesmos objetos;

19
Q

Decorator/ Decorador

A

O padrão decorador permite que um usuário adicione novas funcionalidades a um objeto existente sem alterar sua estrutura. Esse tipo de padrão de design se enquadra no padrão estrutural, pois atua como um invólucro para a classe existente;
Esse padrão cria uma classe decoradora que agrupa a classe original e fornece funcionalidade adicional, mantendo intacta a assinatura dos métodos de classe

20
Q

Facade/ Fachada

A

O padrão de fachada oculta as complexidades do sistema e fornece uma interface para o cliente usando a qual o cliente pode acessar o sistema. Esse tipo de padrão de design se enquadra no padrão estrutural, pois adiciona uma interface ao sistema existente para ocultar suas complexidades;
Esse padrão envolve uma única classe que fornece métodos simplificados exigidos pelo cliente e delega chamadas para métodos de classes de sistema existentes;

21
Q

Flyweight

A

O padrão Flyweight é usado principalmente para reduzir o número de objetos criados, diminuir o espaço ocupado na memória e aumentar o desempenho. Esse tipo de padrão de design se enquadra no padrão estrutural, pois fornece maneiras de diminuir a contagem de objetos, melhorando assim a estrutura do aplicativo;
O padrão Flyweight tenta reutilizar objetos do tipo semelhantes já existentes, armazenando-os e cria um novo objeto quando nenhum objeto correspondente é encontrado. O padrão será demonstrado desenhando 20 círculos de locais diferentes, mas criando apenas 5 objetos. Apenas 5 cores estão disponíveis, portanto, a propriedade color é usada para verificar os objetos Circle já existentes;

22
Q

Proxy

A

No padrão de proxy, uma classe representa a funcionalidade de outra classe. Esse tipo de padrão de design está sob um padrão estrutural;•No padrão de proxy, cria-se um objeto que possui o objeto original para fazer interface de sua funcionalidade com o mundo exterior;

23
Q

Chain of Responsibility/ Cadeia de Responsabilidade

A

Como o nome sugere, o padrão da cadeia de responsabilidades cria uma cadeia de objetos receptores para uma solicitação. Esse padrão desacopla o remetente e o destinatário de uma solicitação com base no tipo de solicitação. É um padrão comportamental;
Nesse padrão, normalmente cada receptor contém referência a outro receptor. Se um objeto não puder tratar a solicitação, ele passará para o próximo receptor e assim por diante;

24
Q

Comando / Command

A

O padrão de comando é um padrão de design controlado por dados e se enquadra na categoria de padrão comportamental;
Uma solicitação é agrupada sob um objeto como comando e passada para o objeto Invoker. O objeto Invoker procura o objeto apropriado que pode tratar esse comando e passa o comando para o objeto correspondente que executa o comando;

25
Q

Interpreter/ Intérprete

A

O padrão do intérprete fornece uma maneira de avaliar a gramática ou expressão da linguagem;
Esse tipo de padrão é um padrão comportamental. Esse padrão envolve a implementação de uma interface de expressão para interpretar um contexto específico;
Esse padrão é usado na análise SQL, no mecanismo de processamento de símbolos etc;

26
Q

Iterator

A

O padrão Iterato ré um padrão de design muito usado nos ambientes de programação Java e .Net. Esse padrão é usado para obter uma maneira de acessar os elementos de um objeto de coleção de maneira sequencial, sem a necessidade de conhecer sua representação subjacente;
O padrão de iterador se enquadra na categoria de padrão comportamental;

27
Q

Mediator/ Mediador

A

O padrão do mediador é usado para reduzir a complexidade da comunicação entre vários objetos ou classes;
Esse padrão fornece uma classe mediadora que normalmente lida com todas as comunicações entre diferentes classes e suporta fácil manutenção do código por meio de baixo acoplamento;
O padrão mediador se enquadra na categoria padrão comportamental;

28
Q

Memento

A

O padrão Memento é usado para restaurar o estado de um objeto para um estado anterior;
Se enquadra na categoria de padrão comportamental;

29
Q

Observador / Observer

A

O padrão observador é usado quando há um relacionamento do tipo um-para-muitos, e quando um objeto for modificado, seus objetos dependentes devem ser notificados automaticamente;
O padrão observador se enquadra na categoria padrão comportamental

30
Q

Estado / State

A

No padrão State, o comportamento de uma classe muda com base em seu estado;
Esse tipo de padrão de design é classificado como padrão de comportamento;
No padrão State, cria-se objetos que representam vários estados e um objeto de contexto cujo comportamento varia conforme o objeto de estado muda;

31
Q

Objeto Nulo / NullObject

A

No padrão Objeto Nulo, um objeto nulo substitui a verificação da instância do objeto NULL. Em vez de colocar uma verificação “if” para um valor nulo, o Objeto Nulo reflete um relacionamento que não faz nada. Esse objeto nulo também pode ser usado para fornecer um comportamento padrão, caso os dados não estejam disponíveis;
No padrão Objeto Nulo, cria-se uma classe abstrata especificando várias operações a serem executadas, classes concretas estendendo essa classe e uma classe de objeto nula, que não implementam nada nessa classe e será usada para verificar o valor nulo;

32
Q

Strategy/ Estratégia

A

No padrão de estratégia, um comportamento de classe ou seu algoritmo pode ser alterado em tempo de execução. Esse tipo de padrão de design é classificado como do padrão de comportamento;
No padrão Estratégia, cria-se objetos que representam várias estratégias e um objeto de contexto cujo comportamento varia conforme seu objeto de estratégia. O objeto de estratégia altera o algoritmo de execução do objeto de contexto

33
Q

Visitante / Visitor

A

No padrão Visitor, usa-se uma classe de visitantes que altera o algoritmo de execução de uma classe de elemento;
Dessa maneira, o algoritmo de execução do elemento pode variar conforme o visitante variar. Esse padrão está na categoria padrão de comportamento;
De acordo com o padrão, o objeto de elemento deve aceitar o objeto visitante para que o objeto de visitante lide com a operação no objeto de elemento;

34
Q

Modelo / Template

A

No padrão de Modelo, uma classe abstrata expõe formas definidas / modelos para executar seus métodos;•Suas subclasses podem substituir a implementação do método conforme a necessidade, mas a chamada deve ser da mesma maneira definida por uma classe abstract;
Esse padrão está classificado na categoria padrão de comportamento;

35
Q

Business Delegate

A

O Padrão de Business Delegate é usado para dissociar a camada de apresentação e a de negócios;•É basicamente usado para reduzir a funcionalidade de comunicação ou pesquisa remota ao código da camada de negócios no código da camada de apresentação. No nível de negócios, temos as seguintes entidades:
➢O código da camada Cliente:apresentação pode ser JSP, servletou código Java da interface do usuário;
➢Business Delegate:Uma única classe de ponto de entrada para entidades clientes fornecerem acesso aos métodos de Serviço de Negócios;

36
Q

Programação Reativa

A

A programação reativa é um paradigma de programação orientado em torno dos fluxos de dados e da propagação da mudança;
Isso significa que deve ser possível expressar fluxos de dados estáticos ou dinâmicos com facilidade nas linguagens de programação usadas, e que o modelo de execução subjacente propagará automaticamente as alterações através do fluxo de dados;

37
Q

Objeto de Acesso a Dados / Data Access Object

A

O Padrão de Objeto de Acesso a Dados ou padrão DAO é usado para separar API ou operações de acesso de dados de baixo nível dos serviços de negócio de alto nível. É composto por:
➢Interface de objeto de acesso a dados:Essa interface define as operações padrão a serem executadas nos objetos de modelo;
➢Classe concreta Data Access Object:Esta classe implementa a interface acima. Essa classe é responsável por obter dados de uma fonte de dados que pode ser bancos de dados, xml ou qualquer outro mecanismo de armazenamento;
Objeto de modelo ou Objeto de valor:Este objeto é um POJO simples que contém métodos get/set para armazenar dados recuperados usando a classe DAO;

38
Q

Front Controller

A

O padrão de design Front Controller é usado para fornecer um mecanismo centralizado de tratamento de solicitações, para que todas as solicitações sejam tratadas por um único manipulador;
Esse manipulador pode fazer a autenticação/autorização/log ou rastreamento de solicitação e depois passar as solicitações para os manipuladores correspondentes. É formado pelos seguintes componentes:
➢Front Controller:Manipulador único para todos os tipos de solicitações que chegam ao aplicativo;
➢Dispatcher:O Front Controller pode usar um objeto despachante que pode despachar a solicitação para o manipulador específico correspondente;
View: Views são o objeto para o qual as solicitações são feitas;

39
Q

Service Locator

A

Os componentes deste padrão de design são:
➢Service:Serviço real que processará a solicitação;
➢Context/ Initial Context:O contexto JNDI carrega a referência ao serviço usado para fins de pesquisa;
➢Service Locator: É um ponto de contato único para obter serviços pela pesquisa JNDI que armazena em cache os serviços;
➢Cache:Cache para armazenar referências de serviços para reutilizá-los;
➢Client: Client é o objeto que chama os serviços via Service Locator;