Főmenü megnyitása

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 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 alapelvSzerkesztés

Az 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 alapelvSzerkesztés

A másik alapelv, melynek 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 „fekete dobozokként” jelennek meg. Az alosztályokon keresztül történő újrafelhasználást fehérdobozos újrafelhasználásnak nevezzük. A „fehér doboz” 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.

Lásd mégSzerkesztés

ForrásokSzerkeszté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)