Alternativa D - Prototype
O enunciado descreve diretamente um dos principais benefícios do padrão Prototype, conforme documentado no livro clássico Design Patterns (GoF).
Este padrão resolve o problema da criação excessiva de subclasses quando se precisa de variações de objetos. Em vez de herdar de uma classe base e sobrescrever métodos apenas para alterar configurações, utiliza-se a cópia de um objeto existente.
Análise Detalhada
- Problema Resolvido: Criar muitas subclasses apenas para obter pequenas variações em objetos leva a hierarquias complexas e difíceis de manter.
- Solução do Prototype: O cliente solicita ao padrão que copie um objeto protótipo configurado previamente. Isso evita a necessidade de criar novas classes na árvore de herança.
- Hierarquias Paralelas: Padrões como Abstract Factory frequentemente criam hierarquias paralelas (uma para produtos, outra para criadores). O Prototype foca na clonagem, eliminando essa dependência estrutural.
- Comparação Rápida:
| Padrão | Foco Principal | Hierarquia? |
|---|
| Prototype | Clonagem de objetos existentes | Reduz a necessidade de subclasses |
| Abstract Factory | Famílias de objetos relacionados | Frequentemente cria hierarquias paralelas |
| Factory Method | Subclasses decidem a instância | Pode gerar muitas subclasses |
| Builder | Construção passo a passo | Separa construção da representação |
| Singleton | Uma única instância global | Não trata de variações de objetos |
Em resumo, ao usar o Prototype, você instancia novos objetos copiando estados de objetos já existentes, o que elimina a necessidade de criar subclasses específicas apenas para esse fim.