Acoplamento
Definição
Acoplamento (coupling) é o grau de dependência entre dois módulos, classes ou componentes de um sistema. Dizemos que dois elementos estão fortemente acoplados quando eles conhecem muitos detalhes um do outro ou dependem diretamente de suas implementações.
Um bom design busca baixo acoplamento, em que os módulos interagem de forma clara, simples e com o mínimo de dependências.
Por que é importante
Reduzir o acoplamento torna o código mais flexível, reutilizável e fácil de modificar. Um sistema com baixo acoplamento permite alterar uma parte sem impactar outras, o que melhora a manutenibilidade e facilita testes.
Exemplo prático (Python)
Um componente que instancia diretamente suas dependências (ex: usando
new
) está fortemente acoplado:
class Pedido:
def __init__(self):
self.pagamento = Pagamento() # acoplamento direto
Já ao usar injeção de dependência, o acoplamento é reduzido:
class Pedido:
def __init__(self, pagamento):
self.pagamento = pagamento # acoplamento fraco
Neste segundo caso, a classe Pedido
não depende de uma
implementação específica de pagamento
— isso facilita testes,
substituições e reaproveitamento do código.
Consequências do alto acoplamento
- Dificulta a realização de testes isolados
- Gera impacto em cadeia ao alterar uma dependência
- Reduz a reutilização de componentes
- Aumenta o risco de regressões ao modificar o sistema