Padrões de projeto nomeiam, explicam e avaliam um aspecto de...
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
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