La legge di Demetra (Law of Demeter, spesso abbreviata in "LoD"), nota anche come Principle of Least Knowledge ("principio della conoscenza minima") è una linea guida per lo sviluppo di software, soprattutto a oggetti. La legge fu proposta nel 1987 da un gruppo di ricercatori della Northeastern University di Boston, ed è stata in seguito ripresa e diffusa da diverse altre fonti, incluso il celebre libro The Pragmatic Programmer.[1]
Nella sua forma più generale, la LoD può essere descritta nei seguenti termini:
Questi due principi possono essere riassunti col motto "non parlate con gli sconosciuti".
In programmazione a oggetti, in particolare, questo implica che un oggetto non dovrebbe interagire direttamente con (usare operazioni di) oggetti a cui accede solo indirettamente (attraverso operazioni o attributi dei suoi conoscenti diretti). Questo garantisce che un oggetto sia indipendente dalla struttura interna e dalle proprietà degli altri oggetti, compresi i loro eventuali componenti interni o le loro relazioni.