Um desenvolvedor da Prefeitura Municipal de Joinville está ...

Próximas questões
Com base no mesmo assunto
Q3986714 Engenharia de Software
Um desenvolvedor da Prefeitura Municipal de Joinville está trabalhando em um sistema de geração de relatórios. Ele precisa de uma solução que permita criar diferentes tipos de relatórios (PDF, HTML, Excel) utilizando o mesmo processo de construção, mas com representações finais distintas. Para isso, busca um padrão de projeto criacional que possibilite separar a construção de um objeto da sua representação final, permitindo que o mesmo processo possa gerar diferentes versões do produto. Qual padrão de projeto atende a essa necessidade?
Alternativas

Comentários

Veja os comentários dos nossos alunos

  • Padrão Correto: Builder (Alternativa E).
  • Classificação: Padrão Criacional (focado em como os objetos são instanciados).
  • Separação de Responsabilidades: Ele separa o algoritmo de construção (a lógica de "como" montar) da representação final (o formato do produto).
  • Mesmo Processo, Diferentes Resultados: Permite que uma sequência de passos idêntica produza objetos com formatos ou conteúdos distintos (PDF vs. Excel).
  • Abstração da Complexidade: O cliente não precisa saber como montar cada parte do relatório; ele apenas solicita ao "Diretor" que inicie a construção.

Para não confundir na prova, lembre-se das palavras-chave de cada um:

  • Flyweight (Estrutural):
  • Foco: Economia de memória.
  • Uso: Compartilhamento de estados comuns entre muitos objetos pequenos.
  • Decorator (Estrutural):
  • Foco: Adicionar funções.
  • Uso: Envolver um objeto para dar a ele novas responsabilidades sem mudar sua classe.
  • Observer (Comportamental):
  • Foco: Notificação/Evento.
  • Uso: Quando um objeto muda, outros "assinantes" são avisados automaticamente.
  • Mediator (Comportamental):
  • Foco: Desacoplamento de comunicação.
  • Uso: Centralizar a conversa entre vários objetos em um único mediador para evitar bagunça nas conexões.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo