Com base nessa situação hipotética, julgue o item a seguir, ...

Próximas questões
Com base no mesmo assunto
Ano: 2015 Banca: CESPE / CEBRASPE Órgão: MEC Prova: CESPE - 2015 - MEC - Desenvolvedor |
Q602387 Arquitetura de Software
      Considere que, em um documento de requisitos, foram elencadas as seguintes necessidades a serem supridas por meio de padrões de projeto:

I    implementar um padrão de criação que possibilite a separação entre a construção de um objeto complexo e sua representação de modo que esse processo de construção possa criar diferentes representações;

II    implementar um padrão que evite vínculo permanente entre uma abstração e sua implementação;

III    implementar um padrão que, sem violar o encapsulamento e a captura, externalize o estado interno de um objeto e permita que posteriormente ele seja restaurado a esse estado;

IV    implementar um padrão que permita a variação do algoritmo independentemente dos clientes que o utilizam;

V    implementar um padrão que forneça uma interface unificada para um conjunto de interfaces em um subsistema;

VI    implementar um padrão que especifique os tipos de objetos a serem criados usando uma instância prototípica e crie novos objetos copiando este novo protótipo.
Com base nessa situação hipotética, julgue o item a seguir, com relação aos padrões de projeto.

Atendendo corretamente o que se pede em IV, o padrão comportamental strategy define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: C - certo

A questão aborda o conhecimento sobre os padrões de projeto (Design Patterns), que são soluções generalistas para problemas comuns no desenvolvimento de software. Estes padrões ajudam a estruturar o sistema de maneira eficiente e manutenível. Para resolver a questão, é necessário compreender diferentes padrões e saber a que tipo de problema cada um se aplica.

No contexto do enunciado, o item IV pede um padrão que permita a variação do algoritmo independentemente dos clientes que o utilizam. Isso é exatamente o que o padrão de projeto Strategy faz. O padrão Strategy define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis. Isso significa que o mesmo contexto pode utilizar diferentes estratégias sem precisar alterar as classes que usam esses algoritmos.

A corretude da afirmação está na habilidade do padrão Strategy de permitir a substituição de partes do algoritmo em tempo de execução, o que é uma maneira eficiente de variar o comportamento de um objeto sem alterar a sua estrutura ou os seus clientes. Essa técnica contribui para a flexibilidade e reutilização do código.

No Strategy, o contexto mantém uma referência a uma estratégia (um algoritmo encapsulado) e pode alterar essa estratégia conforme necessário. Os clientes do contexto não precisam saber qual estratégia está sendo usada, apenas que o comportamento esperado será realizado. Isso é alcançado através da composição, que é uma alternativa preferível à herança quando se quer mudar dinamicamente o comportamento de objetos.

Portanto, a alternativa C está correta porque o padrão Strategy é um padrão comportamental que se encaixa perfeitamente na descrição do item IV, oferecendo uma solução direta para a necessidade especificada.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

2017

Padrões de projeto nomeiam, explicam e avaliam um aspecto de projeto importante e recorrente em sistemas orientados a objetos.

Avalie as características atribuídas a um padrão de projeto.

 

I- Usado quando uma classe é usuária de uma certa hierarquia/ família de algoritmos, como um algoritmo de busca ou ordenação.

II- Esse padrão define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis.

III- Como existem diversos algoritmos em uma mesma família, não é desejável que se codifique todos eles em uma mesma classe.

IV- Permite que um algoritmo varie, independentemente dos clientes que o utilizam.

V- Fornece uma maneira de configurar uma classe com um dentre muitos comportamentos.

VI- Pode ser usado para evitar a exposição das estruturas de dados específicas de um algoritmo, que se deseja ocultar.

 

Essas características são do padrão de projeto

 

CERTO


Quem varia é o algoritmo. Então nesse caso, Strategy. Caso fosse um algoritmo que passasse a decisão das reponsabilidades às subclasses seria Template Method. 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo