Padrões de projeto nomeiam, explicam e avaliam um aspecto de...

Próximas questões
Com base no mesmo assunto
Q831584 Arquitetura de Software

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

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos analisar a questão e as opções apresentadas.

Alternativa correta: A - Strategy

O padrão Strategy é de fato utilizado quando se deseja definir uma família de algoritmos, encapsulando cada um deles e tornando-os intercambiáveis. Vamos entender melhor por que essa é a alternativa correta:

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

Isso se aplica ao padrão Strategy, pois permite que uma classe utilize diferentes algoritmos que pertencem a uma família, como diferentes métodos de ordenação ou busca.

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

Esta é a essência do padrão Strategy. Cada algoritmo é encapsulado em uma classe separada, e eles podem ser substituídos uns pelos outros sem alterar o código cliente.

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

O padrão Strategy ajuda a evitar esta situação, promovendo a separação dos algoritmos em diferentes classes.

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

Com o Strategy, você pode alterar os algoritmos sem modificar o código que os utiliza, proporcionando flexibilidade.

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

O padrão Strategy permite que uma classe se comporte de maneiras diferentes dependendo do algoritmo que está sendo utilizado.

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

Ao encapsular os algoritmos, o Strategy também ajuda a ocultar as estruturas de dados específicas de cada algoritmo.

Alternativas incorretas:

B - Adapter: Este padrão é usado para permitir que duas interfaces incompatíveis trabalhem juntas. Ele não está relacionado à definição e intercâmbio de algoritmos.

C - Decorator: Este padrão é usado para adicionar funcionalidades a um objeto de maneira dinâmica, sem alterar sua estrutura. Não envolve a definição de uma família de algoritmos.

D - Abstract Factory: Este padrão é utilizado para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Novamente, não se relaciona diretamente à intercambiabilidade de algoritmos.

E - Template Method: Define o esqueleto de um algoritmo em uma operação, deixando alguns passos para subclasses implementarem. Não se encaixa na descrição de encapsular e tornar algoritmos intercambiáveis.

Em resumo, o padrão Strategy é o que melhor se encaixa nas descrições apresentadas na questão.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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

palavra chave do Strategy: família de algoritmos

Outro ponto que também pode ser destacado é fato de permitir "que um algoritmo varie". Isso nos leva a crer que estamos falando de um padrão de projetos da categoria comportamental. Para responder a essa questão, ficaríamos somente com duas alternativas para decisão.

 

Abs,

Ficar de olho na palavra-chave como o Pedreiro Software disse:

Strategy = familia de Algoritmo

Adapter. = Interfaces incompativeis

Decorator.= Adiciona estado / Operação

Abstract Factory .= familia de objeto

Template Method.=Equeleto Algoritmo.

Clique para visualizar este comentário

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