Questão FC370097
Um bom desenvolvedor de sistemas deve ter conhecimento sobre refatoração, padrões de arquitetura e de projeto, princípios SOLID e outros tópicos importantes sobre programação. Em r
Padrões de Projeto (Engenharia de Software)
FGV · 2025
Um bom desenvolvedor de sistemas deve ter conhecimento sobre refatoração, padrões de arquitetura e de projeto, princípios SOLID e outros tópicos importantes sobre programação.
Em relação a padrões de projeto, considere o seguinte trecho de código:
public interface Heroi {
void falar();
}
public class HomemDeFerro implements Heroi {
public void falar() {
System.out.println("Eu sou o Homem de Ferro, da Marvel!");
}
}
public class SuperHomem implements Heroi {
public void falar() {
System.out.println("Eu sou o Super Homem, da DC!");
}
}
public class MarvelOuDC {
public static Heroi getHeroi(String nome) {
if (nome.equalsIgnoreCase("HomemDeFerro")) {
return new HomemDeFerro();
} else if (nome.equalsIgnoreCase("SuperHomem"))
{
return new SuperHomem();
}
}
}
Marque a opção que corresponde ao padrão de projeto implementado no código acima.
- Singleton
- Factory
- Observer
- Flyweight
- Builder
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
O código implementa o padrão Factory, um padrão criacional que encapsula a criação de objetos para que o cliente trabalhe com abstrações em vez de classes concretas.
No exemplo, existe a interface Heroi e duas implementações concretas (HomemDeFerro e SuperHomem). A classe MarvelOuDC centraliza a criação: o método getHeroi recebe um parâmetro e retorna uma instância concreta como Heroi.
Essa separação permite ao código cliente depender da interface Heroi, reduzindo acoplamento e facilitando manutenção e extensão (incluir novos heróis sem alterar clientes).
Em resumo: o padrão Factory encapsula a lógica de instanciação, fornecendo objetos via uma fábrica e expondo apenas a abstração ao cliente.
Conteúdo do catálogo FC Concursos · Atualizado em