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