← Questões de Programação

Programação · FCPC · 2025

Questão comentada de Programação

Com base nas características do padrão Command, qual das alternativas abaixo descreve corretamente a responsabilidade de cada componente?

Gabarito: A

O padrão Command é aquele que separa quem pede uma ação de quem realmente executa essa ação. Em vez de o objeto que dispara a operação saber todos os detalhes do trabalho, ele apenas aciona um comando. Isso deixa o sistema mais organizado, flexível e fácil de estender, principalmente quando existem várias ações possíveis, como salvar, desfazer, imprimir ou enviar. Na prática, o Command encapsula uma solicitação como um objeto. O Invoker é quem dispara o comando, mas não precisa conhecer a lógica interna da execução. Já o Receiver é quem faz o serviço de fato, ou seja, executa a ação concreta quando o comando é chamado. Essa divisão é clássica na literatura de padrões de projeto, especialmente no catálogo GoF (Gang of Four). Por isso, a alternativa A está correta: ela descreve exatamente essa separação de responsabilidades. O Command guarda a ação, o Invoker armazena e chama o comando, e o Receiver realiza o trabalho solicitado. É o tipo de padrão que parece simples, mas salva a arquitetura quando o sistema começa a ganhar muitos botões e muitos caminhos possíveis. As demais alternativas trocam os papéis dos participantes ou inventam responsabilidades que não são típicas do Command, como o Invoker definir a lógica da ação ou o Receiver encapsular comandos. Em prova, isso costuma aparecer como confusão entre quem solicita, quem intermedia e quem executa.

Continue treinando

Questões relacionadas