Prawo Demeter
Obiekt powinien wywoływać metody tylko na sobie, swoich polach, parametrach lub obiektach, które sam utworzył – a nie w „katastrofalnych” łańcuchach typu a.b().c().d().
Sformułowane na Northeastern University w 1987 roku (w ramach projektu Demeter). Często łamane przez fluent API i łańcuchy wywołań (buildery ORM), co jest w porządku – prawo dotyczy nieujawniania wewnętrznej struktury obcych obiektów. Przekazanie użytkownika do metody, która wywołuje user.getAddress().getCity().getZip(), wiąże kod z całym grafem obiektów. Lepiej przekazać metodzie sam kod pocztowy.