A LEI DE DEMETER

Na informática existe uma heurística chamada a Lei de Demeter (do inglês The Law of Demeter) que diz:

um módulo não deve conhecer as entranhas dos objetos que ele manipula.

Isso significa que um objeto não deve expor a sua estrutura interna através dos métodos, ao invez disso, o objeto deve esconder a sua estrutura interna.

Mais precisamente, a Lei de Demeter fala que um método f de uma classe C somente pode chamar os métodos:

  • da classe C;
  • de um objeto criado por f;
  • de um objeto passado como argumento para f;
  • de um objeto mantido por uma variável de C;

O método f não deve invocar métodos de objetos que foram retornados por outras funções com permissão. De maneira simplória, a Lei de Demeter fala: “Fale somente com seus amigos, não fale com estranhos”.

O código presente na Figura 22 viola a Lei de Demeter. Afinal, esse chama a função getStratchDir() no retorno da função getOptions() e então chama a função getAbsolutePath() no retorno da função getStratchDir().

Figura 22 – Exemplo de violação da Lei de Demeter.

results matching ""

    No results matching ""