Isten osztály

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez

Az objektumorientált programozásban az isten osztály vagy objektum vagy mindenható, vagy mindentudó. Azaz ő végez minden cselekvést, vagy ő tárol minden adatot a programban.

A programozásban bevett gyakorlat felosztani egy feladatot, és részenként megoldani. A teljes megoldás ezek együtteséből adódik. Így nem kell egy objektumnak mindenről tudnia; egyes részfeladatokat megoldó objektumok nem ismernek mást, és csak a saját részfeladatukat oldják meg, mit sem tudva az egészről.

Ezzel szemben ha a program tartalmaz egy isten objektumot, akkor a legtöbb funkciót egyetlen objektum látja el, vagy ő tud mindenről, és metódusokat tartalmaz az adatok kezelésére. A többi objektumnak kisegítő szerep jut. Ezzel az objektum istenszerűen működik, nem sok teret hagyva a többinek. Szoros kapcsoltsága miatt nehezen kezelhető, karbantartható; az egyik rutin javítása elronthatja egy másik rutin működését.

Nem objektumorientált, procedurális környezetben ehhez hasonló a szubrutinok használatának mellőzése, vagy túl sok globális változó használata.

Bizonyos esetekben ez a gyakorlat elfogadható, ahol a vezérlés központosítása és a hatékonyság fontosabb, mint a karbantarthatóság. Ilyenre példák a mikrovezérlők. Mivel azonban ezek is egyre gyorsabbak lesznek, erre egyre kevésbé lehet majd hivatkozni.

A nagy szőrös objektum (Big hairy object) egy túltelített adapter. Azonban az isten osztályt is szokták így hívni.

Kapcsolódó szócikkek[szerkesztés]

Források[szerkesztés]

  • Riel, Arthur J.. Chapter 3: Topologies of Action-Oriented Vs. Object-Oriented Applications, Object-Oriented Design Heuristics. Boston, Massachusetts: Addison-Wesley (1996). ISBN 0-201-63385-X „3.2: Do not create god classes/objects in your system. Be very suspicious of an abstraction whose name contains Driver, Manager, System, or Subsystem.” 
  • Anti-Patterns and Worst Practices – Monster Objects.

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a God object című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.