Demeter Yasası
Bir nesne yalnızca kendi, alanlarının, parametrelerinin ya da kendi oluşturduğu nesnelerin metotlarını çağırmalıdır; a.b().c().d() gibi “tren kazası” zincirlerini değil.
1987’de Northeastern Üniversitesi’nde (Demeter projesi için) formüle edildi. Akıcı API’ler ve zincirlerle (ORM oluşturucuları) sık sık çiğnenir ve bu kabul edilebilir; yasa, yabancı nesnelerin iç yapısını açığa çıkarmamakla ilgilidir. Bir metoda User verip orada user.getAddress().getCity().getZip() çağırmak, kodu tüm nesne grafına bağlar. Daha iyisi: metoda yalnızca posta kodunu vermek.