Julgue o item a seguir, a respeito de padrões de projetos.O ...

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

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.

Alternativas

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