Demeter törvénye

A Wikipédiából, a szabad enciklopédiábó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.

Irodalom[szerkesztés | forrásszöveg szerkesztése]

  • (1989. szeptember 1.) „Assuring good style for object-oriented programs”. IEEE Software, 38–48. o.  
  • Lieberherr, Karl J. (1995. október 13.). „Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns”, Boston, Kiadó: PWS Publishing Company, International Thomson Publishing.  
  • The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley, 140–141. o (2002. október 13.) 
  • Larman, Craig. Applying UML and Patterns, 3rd, Prentice Hall, 430–432. o (2005. október 13.)  (from this book, "Law of Demeter" is also known as "Don't talk to strangers")
  • McConnell, Steve. Code Complete, 2nd, Microsoft Press, 150. o (2004. október 13.) 
  • ASP.NET MVC in Action. Manning Publications, 14. o (2009. október 13.) 

További információk[szerkesztés | forrásszöveg szerkesztése]