Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — IF-MT 2023

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
qq952363
Banca
IF-MT
Órgão
IF-MT
Ano
2023
Nível
Superior
Cargo
Professor do Ensino Básico, Técnico e Tecnológico - Informática
Sobre padrões de projetos descritos por Gamma (2000), devemos programar para uma interface e não para uma implementação. Considerando os objetivos principais de alguns desses padrões, avalie as afirmações:I. Não declare variáveis como instâncias de classes concretas específicas. Em vez disso, prenda-se somente a uma interface definida por uma classe abstrata.II. Os padrões de criação permitem instanciar classes concretas (isto é, especificar uma particular implementação) em algum lugar do seu sistema.III. Ao abstrair o processo de criação de objetos, estes padrões lhe dão diferentes maneiras de associar uma interface com sua implementação de forma transparente no momento da instanciação.Está CORRETO o que se afirma em:
  1. ANenhuma das afirmações é verdadeira.
  2. BI e II, apenas.
  3. CII e III, apenas.
  4. DI e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoE — I, II e III.

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) — Programar para Interface

Gabarito: letra E. Todas as três afirmações estão corretas, pois refletem princípios fundamentais dos padrões de projeto descritos por Gamma et al. (GoF): programar para uma interface (I), a função dos padrões de criação em instanciar classes concretas de forma controlada (II) e a associação transparente entre interface e implementação (III).

A banca testa a compreensão básica dos conceitos de padrões de projeto e, em especial, dos padrões criacionais. Vamos analisar cada assertiva.

Padrões de projeto (GoF)
  • 1Princípio: programar para interface
    • Não para implementação
    • Reduz acoplamento
    • Aumenta flexibilidade
  • 2Padrões de criação
    • Instanciam classes concretas
    • Em algum lugar do sistema
    • Abstraem o processo
  • 3Associação interface × implementação
    • Transparente na instanciação
    • Tempo de compilação (estático)
    • Tempo de execução (dinâmico)
LEVEL · soulevel.com.br

Assertiva I — ✅ Correta

A prática de "programar para uma interface, não para uma implementação" é um dos pilares do design orientado a objetos. Declarar variáveis como tipos abstratos (interfaces ou classes abstratas) em vez de classes concretas reduz o acoplamento e aumenta a flexibilidade. O próprio livro GoF enfatiza esse princípio.

Assertiva II — ✅ Correta

Os padrões de criação (Factory Method, Abstract Factory, Builder, Prototype, Singleton) abstraem o processo de instanciação, mas em algum lugar do sistema eles efetivamente instanciam classes concretas. Por exemplo, o Factory Method cria um objeto concreto em sua operação. O padrão encapsula o conhecimento sobre qual classe concreta usar, mas a instância concreta é criada.

Assertiva III — ✅ Correta

Ao abstrair a criação, os padrões criacionais permitem que o sistema associe uma interface a diferentes implementações de forma transparente no momento da instanciação. O cliente depende apenas da interface, e o padrão decide qual implementação concreta será fornecida, seja em tempo de compilação (estático) ou em tempo de execução (dinâmico).

Conclusão: As três afirmações estão corretas, portanto a alternativa que as reúne é a letra E.

Link permanente: /questoes/qq952363