Legge di Demetra
Un oggetto dovrebbe chiamare metodi solo su se stesso, sui propri campi, sui propri parametri o sugli oggetti che crea, non catene «da incidente ferroviario» come a.b().c().d().
Formulata alla Northeastern University nel 1987 (per il progetto Demeter). Viene spesso violata da API fluenti e catene (query builder degli ORM), il che è accettabile: la legge riguarda il non esporre la struttura interna di oggetti altrui. Passare un User a un metodo che poi chiama user.getAddress().getCity().getZip() accoppia il codice all'intero grafo di oggetti. Meglio dare al metodo soltanto il CAP.