Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — IF-MT 2023
Arquitetura de Software›Padrõ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:
ANenhuma das afirmações é verdadeira.
BI e II, apenas.
CII e III, apenas.
DI e III, apenas.
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.