Alternativa C - Criar uma família de objetos relacionados sem especificar suas classes concretas.
Explicação Detalhada
Para responder corretamente a esta questão, precisamos entender a definição fundamental do padrão de projeto Abstract Factory (Fábrica Abstrata).
O que é o Padrão Abstract Factory?
O propósito central deste padrão é fornecer uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Isso significa que o código cliente solicita a criação de objetos através de uma interface genérica, e quem decide qual classe específica será usada é a fábrica concreta.
No contexto da questão (sistema de vendas online):
- Imagine que o sistema vende Roupas e Calçados.
- Cada categoria pode ter estilos diferentes (ex: Casual vs. Formal).
- A Abstract Factory permite criar um conjunto de objetos relacionados (um botão de compra e um formulário de pagamento) adequados a cada estilo, sem que o código saiba se está lidando com o estilo "Casual" ou "Formal".
Análise das Alternativas
| Letra | Padrão Associado | Por que não é a resposta correta? |
|---|
| A | Singleton | Descreve o padrão Singleton, que garante que uma classe tenha apenas uma instância. |
| B | Builder | Descreve o padrão Builder, focado na construção passo-a-passo de um objeto complexo. |
| C | Abstract Factory | CORRETA. Reflete a definição exata do padrão: criar famílias de objetos relacionados sem vincular ao concreto. |
| D | Prototype | Descreve o padrão Prototype, focado em clonagem de objetos existentes. |
| E | State / Outros | Relacionado a comportamento dinâmico ou gestão de recursos, não à criação de famílias de objetos. |
Conclusão
A frase do enunciado "criar objetos relacionados a diferentes categorias de produtos sem especificar suas classes concretas" é a definição literal do padrão Abstract Factory. Portanto, a alternativa que resume esse propósito é a C.