Questão de Engenharia de Software — Orientação a Objetos — FGV 2023
Engenharia de Software›Orientação a Objetos
Código
fg069426
Banca
FGV
Órgão
SEFAZ-MT
Ano
2023
Nível
Superior
Cargo
SEFAZ- MT - Fiscal de Tributos Estaduais (FTE) - Tarde
Pedro está trabalhando em um projeto de software orientado a objetos e especificou a classe Manage Schedules Handler que representa um tratador artificial de todos os eventos de sistema referente ao caso de uso Gerenciar Horários.Ao atribuir à classe Manage Schedules Handler essa responsabilidade, Pedro aplicou o princípio GRASP denominado
Acontroller.
Bcreator.
Cinheritance.
Dflyweight.
Etemplate method.
Revelar gabarito e comentário▾
GabaritoA — controller.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
GRASP – Padrão Controller
Gabarito: letra A. A classe ManageSchedulesHandler foi criada para receber e coordenar todos os eventos do sistema referentes ao caso de uso "Gerenciar Horários". Esse papel de centralizar o tratamento de mensagens de um caso de uso é exatamente a definição do padrão GRASP Controller. O Controller é responsável por receber as requisições do sistema, delegar o trabalho a outros objetos e gerenciar o fluxo do caso de uso.
Alternativa A — ✅ Correta ⟵ GABARITO
O padrão Controller (GRASP) atribui a uma classe a responsabilidade de receber e coordenar as mensagens de um caso de uso, atuando como um "controlador" que gerencia os eventos do sistema. A classe ManageSchedulesHandler se encaixa perfeitamente nessa definição.
Alternativa B — ❌ Incorreta
O padrão Creator (GRASP) define quem deve ser responsável por criar novas instâncias de objetos, geralmente a classe que contém ou agrega os dados iniciais. Não se relaciona com a coordenação de eventos de um caso de uso.
Alternativa C — ❌ Incorreta
Inheritance (herança) é um princípio fundamental da orientação a objetos, mas não é um padrão GRASP. Herança permite reutilização de código entre classes, não trata da atribuição de responsabilidades de coordenação.
Alternativa D — ❌ Incorreta
Flyweight é um padrão de design (GoF) voltado para otimização de memória por compartilhamento de objetos. Não é um padrão GRASP e não se aplica ao contexto de atribuição de responsabilidades para casos de uso.
Alternativa E — ❌ Incorreta
Template Method é um padrão comportamental (GoF) que define o esqueleto de um algoritmo em uma operação, postergando a implementação de etapas para subclasses. Não é um padrão GRASP e não está relacionado à coordenação de eventos.
PEGA ESSA DICA!
Para questões sobre GRASP, foque nos padrões principais: Controller, Creator, Information Expert, Low Coupling, High Cohesion, Polymorphism, Pure Fabrication, Indirection e Protected Variations. Memorize a função de cada um; a banca costuma cobrar o reconhecimento de qual padrão se aplica a uma dada situação descrita.