Law of Demeter

TL;DR

In OO software, do not assume knowledge of anything else.

Longer explanation

The Law of Demeter (LoD) is the principle of least knowledge for developing software.

Roughly speaking other ways of expressing this are:

  • software should be loosely coupled
  • principle of encapsulation
  • principle of “information hiding”

For modern OO languages, when using dot notation simply use 1 dot. i.e. something like this would be forbidden:

dog.legs.walk

as you’re assuming knowledge.

Much longer explanation here: http://en.wikipedia.org/wiki/Law_of_Demeter