Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — FGV 2023

Arquitetura de SoftwareArquitetura de Software
Código
fg071494
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
O analista André é o arquiteto da aplicação web TCEDash. O componente Board, da TCEDash, apresenta ao usuário indicadores visuais e manipuláveis, baseados em informações contidas no banco de dados da aplicação. O Board instancia um novo objeto para cada indicador apresentado ao usuário. Sabendo que determinado subconjunto de informações se repete em todos os indicadores, André aplicou no componente Board o padrão de projeto estrutural do Gang Of Four (GoF), que otimiza a alocação de objetos na memória RAM, mediante o compartilhamento de atributos comuns entre os objetos.André aplicou no componente Board o padrão do GoF:
  1. Aproxy;
  2. Bbridge;
  3. Cfacade;
  4. Dflyweight;
  5. Ecomposite.
Revelar gabarito e comentário

GabaritoD — flyweight;

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”.

Padrão Flyweight (GoF)

Gabarito: letra D. O padrão estrutural Flyweight é a solução do GoF que otimiza o uso de memória RAM por meio do compartilhamento de atributos comuns entre objetos, exatamente o que o componente Board precisa ao reutilizar informações repetidas em todos os indicadores.

A banca cobra o conhecimento dos padrões estruturais do GoF. O enunciado descreve uma situação clássica de aplicação do Flyweight: objetos que possuem uma parte intrínseca (compartilhada) e outra extrínseca (variável). Ao separar e compartilhar os dados comuns, o padrão reduz drasticamente a quantidade de objetos na memória.

Alternativa A — ❌ Incorreta

O padrão Proxy fornece um substituto ou intermediário para controlar o acesso a um objeto. Não tem relação com compartilhamento de atributos para economia de memória.

Alternativa B — ❌ Incorreta

O padrão Bridge separa uma abstração de sua implementação, permitindo que ambas variem independentemente. Não compartilha estado entre objetos.

Alternativa C — ❌ Incorreta

O padrão Facade oferece uma interface simplificada para um conjunto de classes de um subsistema. Não lida com alocação ou compartilhamento de objetos.

Alternativa D — ✅ Correta ⟵ GABARITO

O Flyweight é exatamente o padrão descrito: compartilha atributos intrínsecos (comuns) entre múltiplos objetos, reduzindo o consumo de memória. É um padrão estrutural que utiliza um flyweight factory para gerenciar os objetos compartilhados.

Alternativa E — ❌ Incorreta

O padrão Composite compõe objetos em estruturas de árvore para representar hierarquias parte-todo. Não é voltado para compartilhamento de dados entre objetos independentes.

PEGA ESSA DICA!

Para identificar o Flyweight, procure por palavras-chave como "compartilhar", "economia de memória", "atributos comuns repetidos" e a ideia de que um mesmo objeto interno é reutilizado por vários objetos externos. É o padrão ideal para cenários de muitos objetos com estado idêntico.

Gabarito: letra D.

Link permanente: /questoes/fg071494