Skip to content

Law of Demeter

Miért?
Objektumok függőségei egy szolgáltatási lánc több szemén keresztül csúnya szoros csatoláshoz (coupling) vezetnek.

A Law of Demeter-nél az a cél, hogy az objektumok összjátékát egészséges mértékre korlátozzuk. Ezt egyszerűsítve a következőképpen lehet megfogalmazni: “Don’t talk to strangers”. A Law of Demeter szerint egy eljárásnak csak a következő eljárásokat szabadna használnia:
  • saját osztályának eljárásait
  • paramétereinek eljárásait
  • saját osztálya által használt osztályok eljárásait
  • saját maga által létrehozott objektumok eljárásait

Azonban: Figyelembe kell vennünk, hogy néha van értelme a tisztán adattároló osztályoknak. Ezekre természetesen nem kell alkalmazni a Law of Demeter-t. Éppenséggel lehet, hogy van értelme annak, hogy a konfigurációs adatokat több hierarchikus osztályra osszuk szét, úgy hogy a végén a következő hozzáférés adódik egy értékhez:

int margin = config.Pages.Margins.Left;

Ha itt a Law of Demeter-t akarnánk alkalmazni, akkor csak a config.Pages volna megengedett.

Published inElvek