Repository

Definição

O padrão Repository atua como uma camada intermediária entre a lógica de negócio e a fonte de dados. Ele centraliza o acesso a objetos persistidos e fornece uma interface limpa para consultar, salvar ou atualizar objetos.

Esse padrão esconde os detalhes da persistência (como SQL ou ORM), permitindo que a lógica de negócio use os dados como se estivesse trabalhando com uma coleção em memória.

Por que é importante

Ao usar o Repository, o código de negócio não precisa se preocupar com como os dados são armazenados ou recuperados. Isso melhora o isolamento das responsabilidades, facilita testes e permite trocar a tecnologia de persistência sem afetar outras partes do sistema.

É um padrão comum em aplicações que usam bancos de dados e frameworks ORM, como Django, SQLAlchemy ou Entity Framework.

Exemplo prático (Python)

Vamos simular um repositório simples para gerenciar objetos Usuario, abstraindo o acesso aos dados com uma estrutura em memória:

# Entidade de domínio
class Usuario:
    def __init__(self, id, nome):
        self.id = id
        self.nome = nome

# Repositório
class UsuarioRepository:
    def __init__(self):
        self.usuarios = {}

    def salvar(self, usuario: Usuario):
        self.usuarios[usuario.id] = usuario

    def obter_por_id(self, id):
        return self.usuarios.get(id)

    def listar_todos(self):
        return list(self.usuarios.values())

Uso da interface de repositório:

repo = UsuarioRepository()

repo.salvar(Usuario(1, "Alice"))
repo.salvar(Usuario(2, "Bob"))

usuario = repo.obter_por_id(1)
print(usuario.nome)  # Alice

for u in repo.listar_todos():
    print(u.nome)

A lógica de negócio interage com o repositório sem saber se os dados vêm de um banco, arquivo ou memória. Isso permite maior flexibilidade e facilidade para testes.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com