Demeter törvénye
A Wikipédiából, a szabad lexikonból.
Demeter törvénye egy szoftverfejlesztési irányelv, melyet elsősorban objektumorientált programoknál alkalmaznak. Az irányelvet a Northwertern Egyetemen, Bostonban fogalmazták meg 1987 őszén. A lényege: „csak a közvetlen barátaiddal beszélgess”. Egy adott objektum más dolgok felépítését vagy tulajdonságait a lehető legkevésbé ismerje.
Az A objektum igénybe veheti a B objektum egy szolgáltatását (meghívja egy metódusát), de A objektum nem érheti el a B objektumon keresztül egy C objektum szolgáltatásait. Ez azt jelentené, hogy az A objektumnak implicit módon a szükségesnél jobban kell ismernie a B objektum belső felépítését. A megoldás B objektum felépítésének módosítása oly módon, hogy az A objektum közvetlenül hívja B objektumot, és a B objektum intézi a szükséges hívásokat a megfelelő alkomponensekhez. Ha a törvényt követjük, kizárólag B objektum ismeri saját belső felépítését.
Kissé formálisabban O objektum M metódusa a következőket hívhatja:
- O-t magát
- M paramétereit
- M-en belül létrehozott/példányosított objektumokat
- O közvetlen komponenseit
Általánosságban egy objektumnak el kell kerülnie egy meghívott objektum által visszaadott objektum metódusainak hívását, például A.x().y().
Demeter törvényét alkalmazva a szoftver sokkal karbantarthatóbb és adaptálható lesz. Mivel az objektumok kevésbé függnek más objektumok belső felépítésétől, az objektumok felépítése sokkal könnyebben módosítható, akár a hívó szerkezetének módosítása nélkül is.
A törvény alkalmazásának hátránya, hogy szükségessé teszi kis burkoló metódusok használatát, melyek továbbítják a kéréseket a megfelelő komponensekhez. Ez növelheti a belső fejlesztési időt, a tárigényt, és csökkentheti a teljesítményt.


Based on work by