Julgue o item a seguir, a respeito de padrões de projetos.O ...
Julgue o item a seguir, a respeito de padrões de projetos.
O padrão command tem como definição passar uma requisição
entre uma lista ou objetos encadeados para a execução de uma
ação ou o acionamento de um evento em um momento
posterior.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Vamos analisar a alternativa correta da questão:
Gabarito: E (errado)
O enunciado menciona que o padrão command tem como definição "passar uma requisição entre uma lista ou objetos encadeados para a execução de uma ação ou o acionamento de um evento em um momento posterior." Essa afirmação está incorreta. Vamos entender o porquê e aprofundar nosso conhecimento sobre o padrão Command.
Padrão Command:
O padrão Command é um dos padrões de design comportamentais. Ele é utilizado para transformar uma solicitação em um objeto independente que contém todas as informações sobre a solicitação. Este objeto pode ser passado como um parâmetro, armazenado, ou manipulado. O principal objetivo deste padrão é desacoplar o objeto que invoca a operação do objeto que realmente executa a operação.
Características principais do padrão Command:
- Encapsulamento: A solicitação de uma ação é encapsulada em um objeto de comando.
- Desacoplamento: O objeto que invoca a ação não precisa conhecer os detalhes da implementação da ação.
- Flexibilidade: Permite a criação de filas de comandos, registro de comandos e operações de desfazer/refazer.
A definição correta do padrão Command é criar um objeto para cada comando, desacoplando o solicitante do executor. Ele não se refere especificamente a "passar uma requisição entre uma lista ou objetos encadeados".
Agora, vamos entender por que a alternativa está incorreta:
A descrição fornecida no enunciado se assemelha mais ao padrão Chain of Responsibility do que ao Command. O padrão Chain of Responsibility envolve passar uma requisição ao longo de uma cadeia (ou lista) de manipuladores, onde cada manipulador decide se processa a requisição ou a passa adiante. Portanto, a definição dada no enunciado se encaixa mais com o padrão Chain of Responsibility e não com o Command.
Resumindo:
Alternativa correta: E (Errado)
Justificativa: A definição dada no enunciado não corresponde ao padrão Command, mas sim ao padrão Chain of Responsibility.
Espero que esta explicação tenha sido clara e tenha ajudado a compreender melhor os padrões de projeto. Caso tenha mais dúvidas ou precise de mais exemplos, estou à disposição para ajudar!
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
Não é o padrão Command que faz essa função, e sim o Chain of Resposibility, ficando ainda mais claro quando a questão diz "objetos encadeados". O Command permite encapsular toda a informação necessária para executar uma ação ou acionar um evento em um momento posterior.
Comentários: A questão já deu a dica: “objetos encadeados”. Pois é, a questão trata do padrão Chain of Responsability. De fato, são padrões um pouco parecidos, no entanto o padrão Command é basicamente um comando encapsulado em um objeto; e o padrão Chain of Responsability é um objeto tentando manipular algo – caso não consiga, passa para outro objeto, e para outro e para outro, formando-se uma “cadeia de responsabilidades. Gabarito:E
Estava na aula: Chain of Responsability: evita o acoplamento do remetente de uma requisição ao seu receptor ao dar a mais de um objeto a chance de lidar com a requisição.
Pessoal, esse padrão de projeto deve ser utilizado quando se deseja emitir uma solicitação para um dentre vários objetos, sem especificar explicitamente o receptor ou quando mais de um objeto é capaz de lidar com a requisição e ele não for conhecido a priori. Também é utilizado quando um conjunto de objetos que podem lidar com uma requisição forem especificados dinamicamente.
Chain of Responsibility seria a resposta correta.
O padrão command tem como definição passar uma requisição entre uma lista ou objetos encadeados para a execução de uma ação ou o acionamento de um evento em um momento posterior. errado
Chain of Responsability
Bendito serás!!
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo