Logo Passei Direto
Buscar

Exercicio - Introdução a Padrões de Projeto Design Patterns - v1

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Você acertou 2 de 10 questões
Verifique o seu desempenho e continue treinando! Você pode refazer o exercício quantas
vezes quiser.
Verificar Desempenho
A
B
1 Marcar para revisão
"Encapsular uma família de algoritmos em um conjunto de classes que correspondem a
diferentes implementações de uma mesma funcionalidade". Assinale a opção com o nome
do padrão que possui esse propósito:
Factory Method
Facade
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 1/15
C
D
E
Adapter
Strategy
Template Method
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O padrão Strategy é o que encapsula uma família de algoritmos em um conjunto de
classes que correspondem a diferentes implementações de uma mesma
funcionalidade. Este padrão permite que o algoritmo varie independentemente dos
clientes que o utilizam. Portanto, a alternativa correta é a letra D� Strategy.
2 Marcar para revisão
Assinale a alternativa que define a intenção do princípio da Segregação de Interfaces:
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 2/15
A
B
C
D
E
Cada módulo deve ter uma, e apenas uma, razão para mudar.
Cada módulo deve estar aberto para extensões, mas fechado para modificações.
Um tipo deve poder ser substituído por qualquer um de seus subtipos, sem alterar
o correto funcionamento do sistema.
Clientes de um módulo não devem ser forçados a depender de operações que
eles não utilizem.
Entidades concretas devem depender de abstrações, e não de outras entidades
concretas.
Resposta incorreta
Opa! A alternativa correta é a letra D. Confira o gabarito comentado!
Gabarito Comentado
O princípio da Segregação de Interfaces, representado pela alternativa D, afirma que
os clientes de um módulo não devem ser forçados a depender de operações que eles
não utilizem. Isso significa que um bom design de software deve evitar a dependência
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 3/15
A
B
C
D
E
desnecessária de funcionalidades que não são utilizadas, tornando o sistema mais
modular e menos propenso a erros e complexidades desnecessárias.
3 Marcar para revisão
Assinale a alternativa com uma afirmativa verdadeira sobre o padrão GRASP Baixo
Acoplamento:
Evita a criação de dependências em relação a estruturas de código condicionais
(if-then-else ou switch-case)
Indica a classe mais recomendada para instanciar um objeto em uma relação de
agregado x partes.
Recomenda que as responsabilidades devem ser distribuídas pelos módulos de
forma que as dependências entre eles sejam gerenciáveis.
Evita a duplicação de algoritmos que apresentem a mesma estrutura, com alguns
pontos de variação entre eles.
Recomenda que cada módulo deve ter uma responsabilidade bem-definida.
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 4/15
A
B
Resposta incorreta
Opa! A alternativa correta é a letra C. Confira o gabarito comentado!
Gabarito Comentado
O padrão GRASP Baixo Acoplamento é uma diretriz de design que visa minimizar a
dependência entre diferentes módulos de um sistema. A alternativa correta, portanto,
é a opção C, que afirma que este padrão "Recomenda que as responsabilidades devem
ser distribuídas pelos módulos de forma que as dependências entre eles sejam
gerenciáveis". Isso significa que cada módulo deve ser projetado de tal forma que
possa funcionar de maneira independente, tanto quanto possível, dos outros módulos.
Isso facilita a manutenção e a evolução do sistema, pois as alterações em um módulo
têm menos chances de afetar os outros.
4 Marcar para revisão
Assinale a opção que contenha o padrão GRASP que possui uma estrutura de solução
similar ao padrão GoF Facade:
Criador
Baixo Acoplamento
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 5/15
C
D
E
Alta Coesão
Controlador
Polimorfismo
Resposta incorreta
Opa! A alternativa correta é a letra D. Confira o gabarito comentado!
Gabarito Comentado
O padrão GRASP que possui uma estrutura de solução similar ao padrão GoF Facade é
o Controlador. O padrão Controlador é responsável por lidar com eventos do sistema.
Ele recebe a entrada do usuário e a traduz em uma ação a ser realizada pelo sistema.
Isso é semelhante ao padrão Facade do GoF, que fornece uma interface unificada para
um conjunto de interfaces em um subsistema, tornando o subsistema mais fácil de ser
manipulado.
5 Marcar para revisão
"Entidades concretas devem estar acopladas a abstrações, e não a outras entidades
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 6/15
A
B
C
D
E
concretas". Assinale o princípio SOLID correspondente a essa recomendação:
Princípio Open Closed
Princípio da Segregação de Interfaces
Princípio da Inversão de Dependências
Princípio da Responsabilidade Única
Princípio de Substituição de Liskov
Resposta incorreta
Opa! A alternativa correta é a letra C. Confira o gabarito comentado!
Gabarito Comentado
O princípio SOLID que corresponde à recomendação de que "entidades concretas
devem estar acopladas a abstrações, e não a outras entidades concretas" é o Princípio
da Inversão de Dependências. Este princípio sugere que devemos depender de
abstrações, não de concretizações. Ou seja, o código deve depender de interfaces e
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 7/15
A
B
C
D
E
não de classes concretas, permitindo assim maior flexibilidade e facilitando a
manutenção do código.
6 Marcar para revisão
Seja uma classe que implementa a visualização dos contatos de uma agenda telefônica.
Nessa classe, encontramos tanto o código que monta e apresenta os aspectos visuais da
agenda (lista de contatos), como o código que recupera os contatos do banco de dados.
Assinale a alternativa que contenha o princípio SOLID que está sendo violado por essa
construção de projeto:
Princípio Open Closed
Princípio da Segregação de Interfaces
Princípio da Inversão de Dependências
Princípio da Responsabilidade Única
Princípio de Substituição de Liskov
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 8/15
Resposta correta
Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado!
Gabarito Comentado
O princípio SOLID que está sendo violado nessa situação é o Princípio da
Responsabilidade Única. Este princípio estabelece que uma classe deve ter apenas
uma responsabilidade, ou seja, deve ter apenas um motivo para mudar. No caso
apresentado, a classe tem duas responsabilidades: montar e apresentar os aspectos
visuais da agenda e recuperar os contatos do banco de dados. Isso viola o Princípio da
Responsabilidade Única, pois a classe tem mais de uma razão para ser alterada, seja
para modificar a forma como apresenta os contatos ou para alterar a maneira como
recupera os contatos do banco de dados.
7 Marcar para revisão
"Implementar em um único módulo aspectos de implementação de interface com o usuário,
lógica do negócio e acesso a dados". Assinale o padrão GRASP que está sendo diretamente
violado por essa estratégiade implementação:
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 9/15
A
B
C
D
E
Baixo Acoplamento
Criador
Controlador
Polimorfismo
Alta Coesão
Resposta incorreta
Opa! A alternativa correta é a letra E. Confira o gabarito comentado!
Gabarito Comentado
O padrão GRASP que está sendo diretamente violado por essa estratégia de
implementação é a Alta Coesão. A Alta Coesão é um princípio de design de software
que busca garantir que cada módulo ou classe de um sistema tenha responsabilidades
bem definidas e limitadas. Ao implementar aspectos de interface com o usuário, lógica
do negócio e acesso a dados em um único módulo, estamos violando esse princípio,
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 10/15
A
B
C
D
E
pois estamos concentrando muitas responsabilidades em um único módulo, o que
pode levar a problemas de manutenção e evolução do software no futuro.
8 Marcar para revisão
Assinale a alternativa que contenha o padrão GoF aplicável quando temos diferentes
implementações de uma operação em que alguns passos são comuns e outros são
específicos de cada implementação:
Factory Method
Facade
Adapter
Strategy
Template Method
Questão 10 de 10
Corretas �2�
Incorretas �8�
Em branco �0�
1 2 3 4 5
6 7 8 9 10
Exercicio Introdução a Padrões De Projeto � Design Patterns Sair
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 11/15
A
B
Resposta incorreta
Opa! A alternativa correta é a letra E. Confira o gabarito comentado!
Gabarito Comentado
O padrão GoF que se aplica quando temos diferentes implementações de uma
operação, onde alguns passos são comuns e outros são específicos de cada
implementação, é o Template Method. Este padrão de projeto permite definir o
esqueleto de um algoritmo em uma operação, adiando alguns passos para as
subclasses. Template Method permite que subclasses redefinam certos passos de um
algoritmo sem alterar a estrutura do algoritmo.
9 Marcar para revisão
Assinale a alternativa que descreve o padrão GoF Adapter:
Esse padrão constrói um objeto complexo, usando objetos simples e adaptáveis
de forma sequencial.
Esse padrão permite a utilização de múltiplas implementações proprietárias da
mesma funcionalidade, por meio de uma interface padronizada que é traduzida
para as diferentes interfaces proprietárias.
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 12/15
C
D
E
Esse padrão permite a criação de objetos duplicados, sem prejudicar a
performance do sistema.
Esse padrão esconde a complexidade do sistema e fornece uma interface mais
simples para um módulo cliente.
Esse padrão é utilizado para adaptar o estado de um objeto, permitindo que ele
retorne a um estado anterior.
Resposta incorreta
Opa! A alternativa correta é a letra B. Confira o gabarito comentado!
Gabarito Comentado
O padrão GoF Adapter, como descrito na alternativa B, permite a utilização de
múltiplas implementações proprietárias da mesma funcionalidade. Ele faz isso por meio
de uma interface padronizada que é traduzida para as diferentes interfaces
proprietárias. Isso significa que, independentemente da implementação específica, o
padrão Adapter permite que diferentes sistemas ou componentes de software
trabalhem juntos de maneira eficiente, mesmo que suas interfaces sejam diferentes.
Portanto, o padrão Adapter é uma solução eficaz para o problema de incompatibilidade
de interfaces.
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 13/15
A
B
C
D
E
10 Marcar para revisão
A recomendação é: produzir uma solução genérica para alternativas baseadas no tipo de
um elemento, evitando implementações com longas expressões condicionais ou clonagem
de módulos. Assinale a opção que contenha o padrão GRASP que estabelece essa
recomendação de projeto:
Especialista
Polimorfismo
Controlador
Alta Coesão
Criador
Resposta incorreta
Opa! A alternativa correta é a letra B. Confira o gabarito comentado!
Gabarito Comentado
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 14/15
O padrão GRASP que estabelece a recomendação de projeto mencionada no
enunciado é o Polimorfismo. O Polimorfismo é um princípio da programação orientada
a objetos que permite que objetos de diferentes classes tenham comportamentos
diferentes para o mesmo método ou operação. Isso permite a criação de soluções
genéricas para alternativas baseadas no tipo de um elemento, evitando a necessidade
de implementações com longas expressões condicionais ou clonagem de módulos.
19/04/2024, 14:43 wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/
https://wyden.saladeavaliacoes.com.br/exercicio/6622ac51139d33d914d978f5/gabarito/ 15/15