Qual é o Padrão de Projeto que encapsula uma solicitação co...

Próximas questões
Com base no mesmo assunto
Q737815 Arquitetura de Software
Qual é o Padrão de Projeto que encapsula uma solicitação como um objeto, permitindo que se parametrize clientes com diferentes solicitações, enfileire ou registre(log) solicitações e suporte operações que podem ser desfeitas?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é: A - Command.

O Padrão de Projeto Command é responsável por encapsular uma solicitação como um objeto. Isso permite que diferentes solicitações sejam tratadas de forma uniforme. O padrão oferece a flexibilidade de parametrizar clientes com diversas solicitações, bem como permite enfileirar ou registrar (log) essas solicitações. Além disso, o Command suporta a execução de operações que podem ser desfeitas, o que é uma característica importante em sistemas que exigem operações reversíveis, como editores de texto ou sistemas de transações.

Agora, vamos analisar por que as outras alternativas estão incorretas:

B - Template Method: Este padrão define o esqueleto de um algoritmo em uma operação, deixando alguns passos para serem implementados por subclasses. Ele não está relacionado à encapsulação de solicitações como objeto nem ao suporte de operações reversíveis.

C - Composite: O padrão Composite é utilizado para compor objetos em estruturas de árvore para representar hierarquias parte-todo. Ele permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme, mas não lida com encapsulação de solicitações.

D - Factory Method: Este padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar. O Factory Method não está relacionado ao encapsulamento de solicitações nem ao registro e desfazer de operações.

E - Adapter: O Adapter é usado para permitir que interfaces incompatíveis trabalhem juntas. Ele atua como um conversor entre a interface que o cliente espera e a interface de uma classe existente. Não tem relação com encapsular solicitações.

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

TEMPLATE METHOD -  “Definir o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses. Template Method permite que subclasses redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo.” (thread) (reutilização de código) (herança)

 

COMPOSITE - “Compor objetos em estruturas de árvore para representarem hierarquias partes-todo. Composite permite aos clientes tratarem de maneira uniforme objetos individuais e composições de objetos.” 9.1. Use Composite quando: Um conjunto deve ser tratado como um indivíduo, tomando precauções para evitar loops infinitos, já que o Composite depende de implementações recursivas.

Observações:

• Um filho pode substituir um pai.

• Agregação dele mesmo.

• Recursividade.

 

FACTORY METHOD: “Define uma interface (Fábrica) para criar um objeto, deixando subclasses (concretas) decidirem qual classe instanciar. Permite que uma classe (Fábrica) delegue para suas subclasses concretas a responsabilidade de criação de um Produto.” Usa a herança.

 

ADAPTER: “Converte a interface de uma classe em outra interface esperada pelos clientes. O Adapter permite que certas classes trabalhem em conjunto, pois de outra forma seria impossível por causa de suas interfaces incompatíveis.”

Class Adapter: usa herança múltipla para adaptar uma interface à outra. (escopo de classe)

Object Adapter: O adaptador de objeto depende da composição de objetos.

Clique para visualizar este comentário

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