Prévia do material em texto
27/03/2025, 10:06 Você acertou 9 de 10 questões Verifique o seu desempenho e continue treinando! Você pode refazer o exercício Lista de exercícios Padrões Gof... T Sair Verificar Desempenho Questão 1 de 10 1 2 3 4 5 1 Marcar para revisão 6 7 8 9 10 Você está implementando um sistema e quer guardar o histórico de todas as requisições Corretas (9) efetuadas pelo usuário via interface gráfica, de Incorretas (1) forma a poder realizar operações, como Em branco (0) desfazer (undo) e refazer (redo) requisições. Assinale a alternativa com o nome do padrão mais indicado para ser aplicado nesse contexto. A Chain of Responsibility B Strategy C Mediator 1/1527/03/2025, 10:06 estacio.saladeavaliacoes.com.br/exercicio/67e54996696171df9419881d/gabarito/ D State E Command Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O padrão de projeto mais indicado para ser aplicado nesse contexto é o Command. Este padrão permite que você guarde as requisições (comandos) em uma fila, possibilitando a execução de operações como desfazer (undo) e refazer (redo). Ele encapsula uma solicitação como um objeto, permitindo assim parametrizar clientes com filas, solicitações e operações. 2 Marcar para revisão Suponha que existam diferentes algoritmos para resolver um problema, sendo que cada algoritmo se aplica melhor a um contexto específico (ex: volume maior ou menor de dados, frequência de modificações e de consultas). Esse padrão sugere resolver o problema encapsulando cada algoritmo em uma classe distinta, que implementa uma interface padrão utilizada pelos módulos clientes desses algoritmos. 2/1527/03/2025, 10:06 Assinale a alternativa com o nome do padrão que possui o propósito descrito no enunciado: A Strategy B Command C Memento D Chain of Responsibility E Mediator Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado Gabarito: O padrão Strategy permite que um algoritmo seja selecionado e trocado em tempo de execução, sem alterar o código do cliente. 3 Marcar para revisão Sobre o padrão Observer, assinale a alternativa correta: 3/1527/03/2025, 10:06 É responsável por observar e promover as mudanças de estado de A um objeto que possui um ciclo de vida complexo. Define uma cadeia de objetos responsáveis pelo processamento de uma requisição, em que cada objeto da cadeia é responsável por observar B eventos gerados por um elemento central, realizar algum processamento e notificar o próximo objeto da sequência para continuar o processamento. É frequentemente utilizado na implementação de interfaces gráficas complexas, em que uma fonte de informação precisa estar sincronizada com diferentes visualizações apresentadas simultaneamente para o usuário. conceito de polimorfismo não está D presente na solução proposta pelo padrão. Permite o acesso sequencial a objetos organizados em uma coleção, sem E expor a representação interna dessa coleção. X Resposta incorreta Opa! A alternativa correta é a letra C. Confira o gabarito comentado! Gabarito Comentado 4/1527/03/2025, 10:06 O padrão Observer é frequentemente utilizado na implementação de interfaces gráficas complexas, em que uma fonte de informação precisa estar sincronizada com diferentes visualizações apresentadas simultaneamente para o usuário. Isso ocorre porque o padrão Observer permite que um objeto (o observador) seja notificado quando outro objeto (o assunto) sofre uma mudança de estado. Dessa forma, o observador pode atualizar sua representação da informação de acordo com a mudança de estado do assunto. 4 Marcar para revisão Assinale a alternativa que expressa a intenção do padrão de projeto Template Method: Encapsular uma família de algoritmos em objetos, permitindo que os A módulos clientes possam utilizar esses algoritmos de forma Definir uma relação de dependência entre objetos, de modo a garantir que modificações no estado do objeto detentor da informação sejam B notificadas automaticamente para os objetos inscritos previamente como interessados em receber essas notificações. 5/1527/03/2025, 10:06 Implementar a estrutura de um algoritmo genérico em uma superclasse, considerando que os C passos comuns são implementados na própria superclasse, enquanto os passos específicos são implementados nas suas subclasses. Permite capturar o estado interno de um objeto, permitindo que o seu D estado seja restaurado posteriormente, sem quebrar o encapsulamento desse objeto. Encapsular uma requisição em um objeto, permitindo o registro do E histórico de requisições disparadas pelos módulos cliente e a criação de filas de requisições. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado padrão de projeto Template Method tem como objetivo principal definir a estrutura de um algoritmo genérico em uma superclasse. Nesse padrão, os passos comuns do algoritmo são implementados na própria superclasse, enquanto os passos específicos, que podem variar conforme a necessidade, são implementados nas subclasses. Dessa forma, o Template Method permite que as subclasses redefinam certas etapas de um 6/1527/03/2025, 10:06 algoritmo sem alterar a estrutura do algoritmo em si. 5 Marcar para revisão Sobre o padrão Mediator, assinale a alternativa correta: Faz a mediação da execução de um conjunto de algoritmos paralelos, de A forma que não haja problemas de sincronização. Pode ser aplicado em conjunto com o B padrão Observer. Transforma uma interação entre C objetos de uma estrutura 1-N para uma estrutura N-N. Encapsula requisições em objetos, mediando o registro do histórico das D requisições e o gerenciamento de uma fila de requisições. Permite definir um conjunto de passos em uma superclasse, sendo os passos comuns implementados como E métodos dessa superclasse, enquanto os passos específicos são implementados nas suas subclasses. Resposta correta Parabéns, você selecionou a alternativa correta. Confira o 7/1527/03/2025, 10:06 gabarito comentado! Gabarito Comentado padrão Mediator é um padrão de design de software que permite a redução do acoplamento entre classes, fazendo com que a comunicação entre elas seja feita indiretamente, através de um objeto mediador. Nesse sentido, o padrão Mediator pode, de fato, ser aplicado em conjunto com o padrão Observer, que define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. 6 Marcar para revisão "Na implementação de um processo complexo, um módulo A chama operações de um módulo B e de um módulo C. B, por sua vez, chama operações de C e de D. módulo C chama operações de A e de E. módulo D chama operações dos módulos B e C". Esse cenário ilustra uma interação entre objetos no estilo muitos para muitos. Para simplificar esse processo, define-se um objeto que centraliza todas as interações entre esses objetos, de modo que eles passam a se comunicar apenas com esse elemento central. Dessa forma, o elemento central X passa a receber uma notificação de A, para então chamar operações de B e C. Da mesma maneira, a partir de uma notificação enviada por B, X chama operações de C e de D. 8/1527/03/2025, 10:06 stacio.saladeavaliacoes.com.br/exercicio/67e54996696171df9419881d/gabarito/ Essa descrição corresponde à estrutura de solução de qual padrão? A Chain of Responsibility B Strategy C Visitor D Template Method E Mediator Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado padrão de projeto descrito no enunciado é o Mediator. Este padrão é utilizado quando temos muitos objetos que interagem entre si. No caso, o objeto central X é o mediador, que controla como e quando os objetos (módulos A, B, C e D) irão interagir, simplificando a comunicação entre eles. 7 Marcar para revisão "Esse padrão encapsula uma requisição em um objeto, desacoplando o requisitante e o objeto 9/1527/03/2025, 10:06 estacio.saladeavaliacoes.com.br/exercicio/67e54996696171df9419881d/gabarito/ executor. Esse encapsulamento permite registrar o histórico de requisições, reproduzir essas requisições em outro ambiente, bem como implementar operações de desfazer ou refazer o processamento associado à requisição". Assinale a alternativa com nome do padrão que possui esse propósito. A Chain of Responsibility B Command C Mediator D Iterator E Template Method Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O padrão de projeto descrito no enunciado é o "Command". Este padrão é caracterizado por encapsular uma solicitação como um objeto, permitindo assim que os usuários parametrizem clientes com filas, solicitações e operações. Além disso, permite que essas operações sejam desfeitas. O padrão Command é útil para implementar, por exemplo, operações de em um editor de texto ou para processar 10/1527/03/2025, 10:06 estacio.saladeavaliacoes.com.br/exercicio/67e54996696171df9419881d/gabarito/ solicitações de diferentes tipos com diferentes operações. 8 Marcar para revisão Na implementação desse padrão, cada objeto de uma estrutura hierárquica deve definir uma operação Accept, que recebe um objeto de uma classe X como parâmetro. A classe X, por sua vez, implementa uma interface genérica Z, definindo uma operação específica de tratamento para cada tipo de objeto que pertença à estrutura hierárquica. Assinale a opção com o nome do padrão cuja estrutura de solução foi descrita no enunciado. A Strategy B Template Method C Observer D State E Visitor Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado 11/1527/03/2025, 10:06 Gabarito: O padrão Visitor é utilizado para percorrer uma estrutura hierárquica de objetos e aplicar uma operação a cada um deles. No enunciado, é descrito que cada objeto de uma estrutura hierárquica deve definir uma operação Accept, que recebe um objeto de uma classe X como parâmetro. A classe X, por sua vez, implementa uma interface genérica Z, definindo uma operação específica de tratamento para cada tipo de objeto que pertença à estrutura hierárquica. Isso é exatamente o que o padrão Visitor faz: ele define uma operação Accept para cada tipo de objeto na estrutura hierárquica, e cada objeto implementa essa operação de forma diferente. Assim, o padrão Visitor permite que uma operação seja aplicada a todos os objetos de uma estrutura hierárquica, independentemente de sua classe. 9 Marcar para revisão Você está desenvolvendo um sistema para acompanhar as cotações da bolsa de valores. As cotações podem ser acompanhadas na interface com usuário na forma textual (ticker da ação e o seu valor) e na forma de um gráfico de candlesticks, apresentando o histórico das cotações em um período do tempo. As duas formas de visualização devem estar em sincronia com as variações que ocorrem com o valor da cotação das ações. Assinale a alternativa com o nome do padrão que pode ser aplicado para resolver esse 12/1527/03/2025, 10:06 problema de sincronização de visualizações de um conjunto de informações com a sua fonte. A Strategy B State C Iterator D Observer E Mediator Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado padrão de projeto Observer é a resposta correta. Este padrão é usado quando uma mudança em um objeto requer a mudança de outros, e você não sabe quantos objetos precisam ser alterados. No contexto da questão, o padrão Observer permite que as diferentes visualizações (texto e gráfico) sejam notificadas e atualizadas automaticamente quando há uma mudança no valor da cotação das ações, mantendo assim a sincronia entre as visualizações e a fonte de dados. 13/1527/03/2025, 10:06 10 Marcar para revisão Esse padrão define uma estrutura similar à de um esquema Publisher-Subscriber, pois existe um Publisher detentor de um conjunto de informações e registra um conjunto de objetos interessados em receber notificações de modificação desse conjunto de informações, ou seja, do estado do Publisher. Ao ter o seu estado interno modificado, o Publisher notifica os Subscribers que, por sua vez, executam algum procedimento específico de tratamento dessa modificação. Assinale a opção com o padrão correspondente à descrição acima. A Observer B State C Template Method D Strategy E Visitor Resposta correta Parabéns, você selecionou a alternativa correta. Confira o gabarito comentado! Gabarito Comentado O padrão descrito no enunciado é o Observer. Este é um padrão de projeto de software que define uma dependência um- 14/1527/03/2025, 10:06 para-muitos entre objetos, de maneira que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. Neste caso, o Publisher é o objeto que possui as informações e os Subscribers são os objetos que estão interessados em receber as notificações de modificação dessas informações.