Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2019

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc053688
Banca
FCC
Órgão
METRÔ-SP
Ano
2019
Cargo
Analista Desenvolvimento Gestão Júnior – Ciências da Computação
Considere os seguintes objetivos de padrões de projeto.1. Separa a construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações, ou seja, serve para encapsular a construção de um produto e permitir que ele seja construído em etapas.2. Atribui responsabilidades adicionais a um objeto dinamicamente. Ele fornece uma alternativa flexível a subclasses para a extensão da funcionalidade, ou seja, envelopa um objeto para fornecer novos comportamentos.3. Usa compartilhamento para dar suporte a vários objetos de forma eficiente, ou seja, permite que uma instância de uma classe possa ser usada para fornecer muitas “instâncias virtuais”.4. Torna possível salvar o estado de um objeto de modo que o mesmo possa ser restaurado, ou seja, permite restaurar um objeto a um dos seus estados prévios, por exemplo, quando o usuário seleciona um “desfazer”.Correspondem, correta e respectivamente, aos objetivos de padrões de projeto:
  1. AFactory Method, Decorator, Facade e Memento.
  2. BAdapter, Mediator, Facade e Builder.
  3. CBuilder, State, Mediator e Adapter.
  4. DBuilder, Decorator, Flyweight e Memento.
  5. EDecorator, Factory Method, Abstract Factory e State.
Revelar gabarito e comentário

GabaritoD — Builder, Decorator, Flyweight e Memento.

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ões de projeto GoF – Builder, Decorator, Flyweight e Memento

Gabarito: letra D. A sequência correta é: 1. Builder, 2. Decorator, 3. Flyweight, 4. Memento, conforme as definições clássicas dos padrões GoF.

A questão exige o reconhecimento das descrições típicas de quatro padrões de projeto do catálogo GoF (Gang of Four). Vamos analisar cada objetivo e sua correspondência.

Análise item a item

1. "Separa a construção de um objeto complexo da sua representação... construído em etapas."Builder (padrão criacional). O Builder permite construir um objeto passo a passo, variando sua representação interna sem alterar o processo de construção.

2. "Atribui responsabilidades adicionais a um objeto dinamicamente... envelopa um objeto para fornecer novos comportamentos."Decorator (padrão estrutural). O Decorator adiciona funcionalidades a um objeto de forma flexível, sem modificar sua estrutura, através de uma cadeia de wrappers.

3. "Usa compartilhamento para dar suporte a vários objetos de forma eficiente... muitas instâncias virtuais."Flyweight (padrão estrutural). O Flyweight utiliza compartilhamento de objetos para suportar grandes quantidades de objetos de granularidade fina de maneira eficiente.

4. "Torna possível salvar o estado de um objeto... restaurar a um estado prévio, como desfazer."Memento (padrão comportamental). O Memento captura e externaliza o estado interno de um objeto sem violar o encapsulamento, permitindo restauração futura.

Alternativas

Item

Padrão de Projeto

Categoria (GoF)

Descrição

1

Builder

Criacional

Separa a construção de um objeto complexo da sua representação, permitindo que o mesmo processo de construção crie diferentes representações; constrói o objeto em etapas.

2

Decorator

Estrutural

Atribui responsabilidades adicionais a um objeto dinamicamente, fornecendo uma alternativa flexível a subclasses para extensão de funcionalidade; envelopa o objeto para adicionar novos comportamentos.

3

Flyweight

Estrutural

Usa compartilhamento para suportar vários objetos de forma eficiente, permitindo que uma instância seja usada para fornecer muitas “instâncias virtuais”.

4

Memento

Comportamental

Permite salvar e restaurar o estado de um objeto a um estado prévio, sem violar o encapsulamento; útil para funcionalidades como desfazer (undo).

Padrões GoF
  • 1Criacionais
    • Builder
      • Separa construção da representação
      • Construção em etapas
  • 2Estruturais
    • Decorator
      • Atribui responsabilidades dinamicamente
      • Alternativa flexível a subclasses
    • Flyweight
      • Compartilhamento eficiente
      • Muitas instâncias virtuais
  • 3Comportamentais
    • Memento
      • Salva e restaura estado
      • Permite desfazer
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Factory Method (criacional) é usado para delegar a criação de objetos a subclasses, não para construção em etapas. Facade (estrutural) fornece uma interface simplificada, não compartilhamento de instâncias. Apenas Decorator e Memento estão corretos, mas 1 e 3 estão trocados.

Alternativa B — ❌ Incorreta

Adapter converte interfaces, não constrói objetos. Mediator coordena comunicação entre objetos, não adiciona responsabilidades. Facade não é sobre compartilhamento. Builder não é o quarto item. Nenhuma correspondência.

Alternativa C — ❌ Incorreta

State altera comportamento conforme estado, não adiciona responsabilidades. Mediator não é sobre compartilhamento. Adapter não é sobre restauração de estado. Apenas Builder está correta.

Alternativa D — ✅ Correta ⟵ GABARITO

Sequência exata: Builder, Decorator, Flyweight, Memento – todos correspondem perfeitamente às descrições.

Alternativa E — ❌ Incorreta

Decorator não é construção, Factory Method não é adição dinâmica de responsabilidades, Abstract Factory não é compartilhamento, State não é restauração de estado. Nenhum acerto.

PEGA ESSA DICA!

Para memorizar os padrões GoF, agrupe-os por categoria (criacionais: Builder, Factory Method, Abstract Factory, Prototype, Singleton; estruturais: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy; comportamentais: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor). Associe cada descrição típica ao nome: Builder → construção passo a passo; Decorator → embrulho para novos comportamentos; Flyweight → compartilhamento de objetos leves; Memento → snapshot para desfazer.

Gabarito: letra D.

Link permanente: /questoes/fc053688