“O padrão _________________ ensina como fornecer um método que pode ser sobrescrito para criar objetos de tipos variáveis.” Assinale a alternativa que completa corretamente a afirmativa anterior.
- A)Proxy
Errada, porque Proxy controla o acesso a um objeto, não define um método para criação de objetos variáveis.
- B)Visitor
Errada, porque Visitor separa algoritmos das estruturas de objetos, e não se concentra em fabricar instâncias.
- C)Singleton
Errada, porque Singleton garante apenas uma única instância da classe, sem tratar de métodos de criação sobrescritíveis.
- D)Factory Method
Certa, porque Factory Method define um método de criação que pode ser sobrescrito para gerar objetos de tipos diferentes.
Gabarito: D
O enunciado descreve um padrão que permite definir um método-base e deixar que subclasses o sobrescrevam para decidir quais objetos serão criados. Essa é a ideia central do Factory Method: a classe mãe “delegar” a criação, em vez de prender tudo numa construção única e rígida. Na prática, isso dá flexibilidade para variar o tipo de objeto produzido sem mudar o código que o utiliza. Pense assim: em vez de a aplicação sair fabricando tudo diretamente com new espalhado por aí, ela chama um método de criação que pode ser ajustado por herança. Assim, cada subclasse pode devolver um produto diferente. É um jeito elegante de separar o que faz e o que cria. Por isso o gabarito é a letra D. O padrão Factory Method, consagrado na literatura clássica de padrões de projeto (GoF), ensina justamente a criar objetos por meio de um método que pode ser sobrescrito, permitindo tipos variáveis de instância. É o famoso “quem decide o produto é a subclasse”. As demais alternativas falam de outros papéis: Proxy lida com objeto substituto, Visitor com operação sobre estruturas de objetos e Singleton com uma única instância. Ou seja, parecem próximas do tema, mas não tratam do mecanismo de criação flexível pedido na questão.