b) Acoplamento
Por princípio, devemos evitar o alto acoplamento entre classes (low coupling). Pois se tivermos um grande sistema, com várias classes, e precisarmos modificar uma classe, fica difícil determinar quais classes serão afetadas por aquela modificação, tornando a manutenção complicada, uma vez que fica muito fácil de ocorrer erros de implementação em classes dependentes.
Por exemplo, observe as seguintes classes abaixo:
A classe Program usa a classe Cliente, que usa a classe BancoDados, que realiza a gravação de um cliente no banco de dados. Uma alteração na classe BancoDados pode gerar implicações nas classes Cliente e Program, por estes estarem relacionadas (dependentes). Isto indica forte acoplamento.