Eseményvezérelt programozás

A Programozás Wiki wikiből

Az eseményvezérelt programozás lényege, hogy a program ill. egyes részei, ágai nem szekvenciális és előre meghatározható sorrendben futnak le, hanem a vezérlés lefutását bizonyos külső ill. belső események határozzák meg. A program egésze nem más, mint események bekövetkezésére válaszul végrehajtott szubrutinok (ún. eseménykezelők) laza halmaza, amelyek nagyrészt egymástól függetlenül dolgoznak és működtetik a program egészét. Az eseményvezérelt architektúrák ez utóbbi okból kifolyólag rendkívül robusztusak és akkor is könnyen átláthatóak maradnak, ha a programnak több száz- vagy ezer különböző beviteli forrásra és módra kell tudnia figyelnie és válaszolnia.

Az eseményvezérelt modellben külső események alatt tipikusan a felhasználói bevitelt (billentyű lenyomása, egérművelet), valamint a hardvertől származó eseményeket (pl. az időzítőáramkor vagy periférfia által kiváltott megszakítás, visszahívás) szokás érteni, míg a belső eseményeket a program más részeitől - vagy akár más programoktól - származó üzenetek képezik.

Az eseményvezérelt programok egyetlen szekvenciális részeit a program az események begyűjtését és szétosztását (dispatch) végző főciklusa, valamint az egyes eseményeket kezelő szubrutinok képezik, amelyek azonban maguk is válhatnak további események kiváltójává és forrásává.

Eseményvezérelt program szinte bármilyen programozási nyelvben készíthető, de különösen könnyű és célszerű olyan nyelvet használni, amely támogatja az objektumorientált programozást, mert a többalakúság rendkívül egysszerűvé teszi az eseménykezelő architektúrák és hívási láncok kialakítását.