Quando possível, evite que um módulo tenha conhecimento de outro módulo desnecessariamente. Por exemplo, se A colabora com B e B colabora com C, então A não precisa conhecer C, mais especificamente a.GetB().GetC().facaAlgo().

Se isso for acontecer, quando uma alteração for feita em níveis intermediários, pode ser necessário refatorar muito código.

Por conta disso, o ideal é que um módulo deve ter conhecimento apenas do que ele realmente precisa, e não conhecer todo o mapa de navegação do sistema.

  • Sem rótulos