O padrão de projeto que permite definir uma interface para criar objetos, mas deixa as subclasses decidirem a classe a ser instanciada, adiando a instanciação para cada subclasse, é o
- A)Factory Method.
Correta, porque o Factory Method define a interface de criação e delega às subclasses a decisão sobre qual classe concreta será instanciada.
- B)Template Method.
Errada, porque Template Method organiza a estrutura de um algoritmo, e não a criação de objetos.
- C)Abstract Factory.
Errada, porque Abstract Factory cria famílias de objetos relacionados, sem depender da decisão de subclasses por meio de um método fábrica.
- D)Chain of Responsibility.
Errada, porque Chain of Responsibility passa a requisição por uma cadeia de objetos, sem relação com instanciação.
- E)Facade.
Errada, porque Facade apenas simplifica o acesso a um subsistema, sem tratar de criação de objetos.
Gabarito: A
Esse enunciado descreve um padrão de criação, ou seja, daqueles que cuidam de como os objetos nascem sem deixar a aplicação inteira presa a um "new" espalhado por tudo. A ideia é simples: você define a interface para criar o objeto, mas quem decide a classe concreta é a subclasse. Assim, a decisão fica adiada para o momento certo e cada subclasse pode mudar o produto criado sem quebrar o resto do sistema. Isso é exatamente o Factory Method: o método-fábrica fica na classe base, mas a escolha da implementação concreta vai para as subclasses. É um jeito elegante de ganhar flexibilidade, porque você troca a criação de objetos sem mexer na lógica principal. Em prova, se aparecer a expressão "deixa as subclasses decidirem", acenda a luz amarela para esse padrão. Não confunda com Template Method, que também usa herança e subclasses, mas para definir o esqueleto de um algoritmo, não para criar objetos. No Factory Method, o foco é a instância; no Template Method, o foco é o fluxo do processo. A banca adora trocar essas duas para ver quem está lendo com atenção. Doutrinariamente, a classificação vem da GoF (Gang of Four), que organiza Factory Method como padrão criacional. Então, o gabarito A está correto porque o enunciado descreve exatamente a criação delegada às subclasses.