Pular para o conteúdo principal

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

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc036532
Banca
FCC
Órgão
DPE-RS
Ano
2017
Nível
Superior
Cargo
Analista - Desenvolvimento de Sistemas
Considere que é necessário fazer um programa que vá funcionar em várias plataformas, como Windows, Linux, Mac OS etc. O programa fará uso de diversas abstrações de janelas gráficas, por exemplo, janela de diálogo, janela de aviso, janela de erro etc. Um Analista sugeriu o uso de um padrão de projeto GoF estrutural que fornece um nível de abstração maior que o Adapter, pois são separadas as implementações e as abstrações, permitindo que cada uma varie independentemente.O padrão sugerido pelo Analista é o
  1. ABridge e as implementações seriam as classes de janela das plataformas.
  2. BPrototype, pois especifica os tipos de plataformas a serem criadas usando uma instância protótipo e cria novas interfaces pela cópia desse protótipo.
  3. CMVC, de forma que a camada Model fique responsável por acionar as janelas, a camada Controller exiba os dados do Model ao usuário e a camada View armazene as classes que fazem a comunicação com o Banco de Dados.
  4. DVisitor e as interfaces seriam executadas nos elementos de cada plataforma.
  5. EState, que permite a uma plataforma alterar o comportamento de sua interface.
Revelar gabarito e comentário

GabaritoA — Bridge e as implementações seriam as classes de janela das plataformas.

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: Bridge

Gabarito: letra A. O padrão Bridge (Ponte) é um padrão estrutural GoF cujo objetivo é desacoplar uma abstração da sua implementação, permitindo que ambas variem independentemente. A descrição do enunciado — "fornece um nível de abstração maior que o Adapter, pois separa implementações e abstrações" — é exatamente a definição do Bridge. As implementações seriam as classes específicas de janela para cada plataforma (Windows, Linux, Mac OS).

Os padrões GoF dividem-se em três categorias: criacionais, estruturais e comportamentais. O Bridge é estrutural, assim como Adapter, Composite, Decorator, etc. As demais alternativas pertencem a outras categorias ou não são padrões GoF.

Padrão GoF

Categoria

Objetivo Principal

Aplicação no Contexto

Correta?

Bridge

Estrutural

Desacoplar abstração da implementação, permitindo variação independente

Separar interfaces de janela (abstrações) das implementações específicas de cada plataforma (Windows, Linux, Mac OS)

✅ Sim

Prototype

Criacional

Criar objetos por cópia de um protótipo

Não se aplica; não resolve variação entre plataformas

❌ Não

MVC

Arquitetural

Separar dados (Model), exibição (View) e controle (Controller)

Descrição incorreta; não é padrão GoF estrutural

❌ Não

Visitor

Comportamental

Adicionar operações a elementos sem modificar suas classes

Não se aplica à separação abstração/implementação

❌ Não

State

Comportamental

Alterar comportamento conforme estado interno

Não se aplica à variação entre plataformas

❌ Não

Padrões GoF
  • 1Estruturais
    • Adapter
    • Bridge
      • Separa abstração da implementação
      • Variação independente
    • Composite
    • Decorator
  • 2Criacionais
    • Prototype
  • 3Comportamentais
    • Visitor
    • State
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O Bridge separa a abstração (a interface de janela) da implementação (o código específico de cada plataforma). Permite que novas abstrações (tipos de janela) e novas implementações (novas plataformas) sejam adicionadas sem afetar o outro lado. É a solução clássica para o problema de portabilidade de interfaces gráficas.

Alternativa B — ❌ Incorreta

Prototype é um padrão criacional, usado para criar novos objetos a partir de um protótipo (cópia). Não trata de separação entre abstração e implementação, nem resolve o problema de múltiplas plataformas.

Alternativa C — ❌ Incorreta

MVC (Model-View-Controller) é um padrão arquitetural, não um padrão GoF estrutural. Além disso, a descrição dada está errada: a camada Model contém os dados e a lógica de negócio; a View exibe os dados; e o Controller gerencia a interação do usuário. A alternativa inverte os papéis (diz que o Model aciona janelas e a View faz comunicação com banco).

Alternativa D — ❌ Incorreta

Visitor é um padrão comportamental. Permite adicionar novas operações a uma estrutura de objetos sem modificar as classes dos elementos. Não se aplica à separação de abstração e implementação entre plataformas.

Alternativa E — ❌ Incorreta

State é um padrão comportamental. Permite que um objeto altere seu comportamento quando seu estado interno muda. Não tem relação com a variação independente de abstrações e implementações.

NÃO CAIA NESSA!

A banca explora a confusão entre padrões GoF e padrões arquiteturais como MVC. Lembre-se: Bridge é o único padrão estrutural que desacopla abstração da implementação. Ao ver "separar implementações e abstrações" e "nível maior que Adapter", a resposta certa é Bridge.

Gabarito: letra A.

Link permanente: /questoes/fc036532