Padrão de Projeto Repository
Gabarito: letra D. O padrão Repository tem como objetivo atuar como um hub central para gerenciar toda a lógica de acesso a dados de um aplicativo, abstraindo os detalhes de armazenamento e recuperação de dados do restante do sistema. É um padrão muito utilizado em aplicações que seguem os princípios de Domain-Driven Design (DDD) e arquiteturas em camadas.
A questão cobra o conhecimento da finalidade dos padrões de projeto mais comuns. Vamos analisar cada alternativa:
Padrão | Categoria | Objetivo Principal | Relação com Acesso a Dados |
|---|
Factory | Criação | Encapsular a instanciação de objetos, delegando a criação a subclasses ou métodos | Nenhuma |
Strategy | Comportamental | Definir uma família de algoritmos intercambiáveis, permitindo que variem independentemente | Nenhuma |
Prototype | Criação | Criar novos objetos por clonagem de um protótipo existente | Nenhuma |
Repository | Estrutural/Persistência | Atuar como hub central para gerenciar lógica de acesso a dados, abstraindo armazenamento e recuperação | Sim — abstrai detalhes de persistência do restante do aplicativo |
Singleton | Criação | Garantir que uma classe tenha apenas uma instância com ponto global de acesso | Nenhuma |
Alternativa A — ❌ Incorreta
Factory é um padrão de criação que encapsula o processo de instanciação de objetos, delegando a criação a subclasses ou métodos específicos. Não tem relação com acesso a dados.
Alternativa B — ❌ Incorreta
Strategy é um padrão comportamental que define uma família de algoritmos intercambiáveis. Permite que o algoritmo varie independentemente dos clientes que o utilizam, mas não abstrai acesso a dados.
Alternativa C — ❌ Incorreta
Prototype é um padrão de criação que permite criar novos objetos a partir da clonagem de um protótipo existente, sem depender de suas classes concretas. Também não lida com persistência.
Alternativa D — ✅ Correta ⟵ GABARITO
Repository é o padrão descrito: ele fornece uma interface para acessar objetos de domínio, abstraindo o armazenamento subjacente (como bancos de dados, arquivos ou serviços remotos). Atua como um hub central para operações de dados, promovendo a separação entre a lógica de negócio e a infraestrutura de persistência.
Alternativa E — ❌ Incorreta
Singleton é um padrão de criação que garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Não gerencia acesso a dados.
Gabarito: letra D.