terça-feira, 1 de abril de 2008

Baixo Acoplamento

* Problema
Como minimizar dependências e maximizar o reuso?

O acoplamento é uma medida de quão fortemente uma classe está conectada, possui conhecimento ou depende de outra classe
Com fraco acoplamento, uma classe não é dependente de muitas outras classes
Com uma classe possuindo forte acoplamento, temos os seguintes problemas:
Mudanças em uma classe relacionada força mudanças locais à classe
A classe é mais difícil de entender isoladamente
A classe é mais difícil de ser reusada, já que depende da presença de outras classes.


* Solução
Atribuir responsabilidades de forma a minimizar o acoplamento

* Discussão
Minimizar acoplamento é um dos princípios de ouro do projeto OO
Acoplamento se manifesta de várias formas:
X tem um atributo que referencia uma instância de Y
X tem um método que referencia uma instância de Y
Pode ser parâmetro, variável local, objeto retornado pelo método
X é uma subclasse direta ou indireta de Y
X implementa a interface Y
A herança é um tipo de acoplamento particularmente forte
Uma seção futura aprofunda o assunto
Não se deve minimizar acoplamento criando alguns poucos objetos monstruosos (God classes)
Exemplo: todo o comportamento numa classe e outras classes usadas como depósitos passivos de informação
Tipos de acoplamentos (do menos ruim até o pior)
Acoplamento de dados
Acoplamento de controle
Acoplamento de dados globais
Acoplamento de dados internos

Nenhum comentário: