GoF alapelvek

A Wikipédiából, a szabad enciklopédiából

A GoF alapelvek a nevüket annak a könyvnek a szerzőiről kapták, amelyben először leírták őket. Ezt a könyvet (Programtervezési minták, Újrahasznosítható elemek objektumközpontú programokhoz, angolul: Design Patterns: Elements of Reusable Object-Oriented Software) a Négyek bandája (Gang Of Four, GoF) néven híressé vált szerzőnégyes írta, név szerint Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Sok, úgynevezett tervezési minta mellett két alapvető objektorientált tervezési alapelvet is megfogalmaztak.

GoF 1 alapelv[szerkesztés]

A GoF 1 alapelv lényege,hogy "interfészre programozzunk, ne pedig implementációra!" Öröklődés során minden, az absztrakt műveletek konkretizálását végző osztály osztozik az interfészen, vagyis az interfészen változtatni az alosztályok illetve implementációs osztályok nem tudnak (még elrejteni sem tudják az öröklött/kapott műveleteket!). A konkrét osztályok „mindössze” új műveleteket adhatnak hozzá, illetve a meglévőket felüldefiniálhatják. Így viszont minden alosztály tud majd válaszolni az interfésznek megfelelő kérelmekre, amik lehetővé teszik, hogy a kliensek függetlenek legyenek az általuk felhasznált objektumok tényleges típusától (nem is kell őket ismerniük, így ez a lazán csatolás irányába tett nagy lépésként is értelmezhető), amíg az interfész megfelel a kliens által vártnak. A kliens így csak az interfésztől függ, és nem az implementációtól, vagyis anélkül cserélhetőek le a szolgáltatást nyújtó konkrét osztályok az interfész változatlanul hagyása mellett, hogy az a kliensekre bármiféle kihatással lenne.

GoF 2 alapelv[szerkesztés]

A GoF 2 alapelv lényege „használj objektum-összetételt öröklés helyett, ha csak lehet”. Az objektum-összetétel az öröklődés alternatívája. Itt az új szolgáltatások úgy jönnek létre, hogy kisebb részekből építünk fel objektumokat, hogy több szolgáltatással rendelkezzenek. Az objektum-összetételnél az összeépített objektumoknak jól meghatározott interfésszel kell rendelkezniük. Az ilyen újrafelhasználást feketedobozos újrafelhasználásnak nevezzük, mert az objektumok belső részei láthatatlanok. Az objektumok „feketedobozokként” jelennek meg. Az alosztályokon keresztül történő újrafelhasználást fehérdobozos újrafelhasználásnak nevezzük. A „fehérdoboz” itt a láthatóságra utal: az öröklődéssel az alosztályok gyakran látják a szülőosztály belső részeit.

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

Források[szerkesztés]

  • Gamma, Helm, Johnson & Vlissides. Design Patterns (könyv). Addison-Wesley (1994). ISBN 0-201-63361-2 
  • Dr. Kusper Gábor. Programozási technológiák (jegyzet) (2015) 
  • Kollár Lajos, Sterbinszky Nóra. Programozási technológiák (jegyzet) (2014)