Padrões de Projeto (Design patterns) Flashcards
O que são Design Patterns?
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.
Explique o padrão Singleton, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Factory Method, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Abstract Factory, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Builder, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Prototype, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Object Pool, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Adapter , e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Bridge , e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Composite, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Decorator, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Facade, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Flyweight, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Proxy, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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
Explique o padrão Strategy, e a qual padrão ele pertence (Criacional, Estrutural ou Comportamental)
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