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.
 ECOSSISTEMA PYTHON
 ECOSSISTEMA PYTHON  LINUX
 LINUX  ASSEMBLY NASM
 ASSEMBLY NASM  JAVA
 JAVA