Prévia do material em texto
Você acertou 9 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 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 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 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. 2 Marcar para revisão "Implementamos 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 princípio SOLID que está sendo diretamente violado por essa estratégia de implementação: A B C D E Princípio da Inversão de Dependências Princípio Open Closed Princípio da Segregação de Interfaces Princípio da Responsabilidade Única Princípio de Substituição de Liskov Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A estratégia de implementação descrita no enunciado viola o Princípio da Responsabilidade Única. Este princípio, parte dos princípios SOLID, afirma que uma classe ou módulo deve ter apenas uma razão para mudar, ou seja, deve ter apenas uma responsabilidade. No caso apresentado, o módulo está lidando com a interface do usuário, a lógica do negócio e o acesso a dados, o que é uma clara violação deste princípio, pois o módulo tem mais de uma responsabilidade. A B C D E 3 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 Alta Coesão Controlador Polimorfismo Resposta correta Parabéns, você selecionou a alternativa correta. 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 A B C D E 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. 4 Marcar para revisão A recomendação é: atribua a responsabilidade pela execução de uma operação à classe que possua as informações necessárias para realizá-la. Assinale a opção que contenha o padrão GRASP que estabelece essa recomendação de projeto: Especialista Criador Baixo Acoplamento Alta Coesão Polimorfismo A B Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O padrão GRASP denominado "Especialista" é o que estabelece a recomendação de atribuir a responsabilidade pela execução de uma operação à classe que possui as informações necessárias para realizá-la. Esse padrão sugere que a responsabilidade deve ser designada à classe que tem a maior parte das informações necessárias para cumprir a responsabilidade. Portanto, a alternativa correta é a "Especialista". 5 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. 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 correta Parabéns, você selecionou a alternativa correta. 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. 6 Marcar para revisão Questão 6 de 10 Corretas �9� Incorretas �1� Em branco �0� 1 2 3 4 5 6 7 8 9 10 Exercicio Introdução a Padrões De Projeto � Design Patterns Sair A B C D E "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égia de implementação: 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, pois estamos concentrando muitas A B C D E responsabilidades em um único módulo, o que pode levar a problemas de manutenção e evolução do software no futuro. 7 Marcar para revisão Assinale a alternativa que define a intenção do princípio da Segregação de Interfaces: 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. A B C Resposta correta Parabéns, você selecionou a alternativa correta. 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 desnecessária de funcionalidades que não são utilizadas, tornando o sistema mais modular e menos propenso a erros e complexidades desnecessárias. 8 Marcar para revisão "Entidades concretas devem estar acopladas a abstrações, e não a outras entidades 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 D E Princípio da Responsabilidade Única Princípio de Substituição de Liskov Resposta correta Parabéns, você selecionou a alternativa correta. 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 quedevemos depender de abstrações, não de concretizações. Ou seja, o código deve depender de interfaces e não de classes concretas, permitindo assim maior flexibilidade e facilitando a manutenção do código. 9 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: A B C D E Factory Method Facade 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. A B C D E 10 Marcar para revisão Assinale a afirmativa falsa sobre padrões de projeto: Padrões facilitam o desenvolvimento, pois permitem a utilização de soluções bem- sucedidas em problemas similares. É comum um iniciante achar que os padrões devem estar por toda a implementação e acabar fazendo uso inadequado deles. Decidir se um padrão pode ser empregado em um problema específico nem sempre é uma tarefa fácil. Um padrão não pode ser adaptado ao ser aplicado em um problema específico. Padrões fornecem uma linguagem comum para os desenvolvedores. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado A alternativa D é falsa. Na verdade, um dos grandes benefícios dos padrões de projeto é a sua adaptabilidade. Eles fornecem uma estrutura que pode ser modificada para se adequar a diferentes problemas. Portanto, ao contrário do que a alternativa sugere, um padrão de projeto pode, sim, ser adaptado ao ser aplicado em um problema específico.