בתכנות תוכנה, תכנות מונחה אירועים (Event-driven programming) הוא גישה שבה חלקים בתוכנית ממתינים לאות שנקרא "אירוע". האירוע נוצר כשמשהו קורה במערכת. אירועים יכולים להיות פנימיים, בין חלקים של אותה תוכנה, או חיצוניים, בין תוכנות שונות.
המתכנת מעביר ומקבל הודעות בין חלקים שונים של התוכנה באמצעות אירועים, כמו דואר וירטואלי. אפשר להגדיר אירוע במחלקה, להזניקו (להפעיל אותו) וללכוד אותו במקום אחר. אירוע מורכב משני חלקים עיקריים: המקום שמגדיר ומזניק את האירוע, והמקום שבו נרשמים ומגיבים לאירוע.
באופן זה זרימת התוכנה נהיית מאורגנת וברורה יותר בהשוואה ללולאות האזנה ידניות של תכנות פרוצדורלי. בתכנות מונחה עצמים האירועים תומכים בהכימוס (Encapsulation), הסתרת הפרטים הפנימיים של האובייקט, ומאפשרים קבלת משוב (Callback) והפעלת פונקציות בצורה א-סינכרונית, כאשר התוצאה מגיעה דרך אירוע.
דוגמה אופיינית היא מחלקת סטודנט שמכילה שדה "תאריך לידה". פונקציה במחלקה בודקת מדי יום אם זה יום ההולדת. אם כן, היא מזניקה אירוע "בעת יום הולדת" עם פרטי הסטודנט. מחלקה שמארחת את הסטודנט תחליט איך להגיב: שליחת מסרון, הצגה על מסך או שליחת אימייל.
אירועים נפוצים מתחלקים לאירועי משתמש ואירועי מערכת. אירועי משתמש נוצרים על ידי עכבר, מקלדת או מסך מגע. אירועי מערכת יכולים להיווצר על ידי טיימר (שעון), חיישנים, קבלת דואר או הפעלת משימות תחזוקה.
בממשקי משתמש גרפיים לכל אובייקט יש לעיתים אירועים ייחודיים, ולפעמים אירועים משותפים כמו לחיצה על עכבר. בחלק מהסביבות אירוע יכול "לטפס" מהפקד אל האלמנט שמכיל אותו, ובחלקים אחרים האירוע נעצר כבר בפקד.
בבסיסי נתונים משתמשים בגישה דומה דרך טריגרים (trigger), שגרות שמופעלות בעת יצירה, עדכון או מחיקה של רשומה. כך תהליכים משותפים מתרכזים במקום אחד ומוודאים התנהגות עקבית.
בדוגמה ב‑VB.NET יש שתי מחלקות: Form1 המחזיקה את האובייקט, ו‑People המחזיקה את שדה תאריך הלידה. בפונקציה CheckBirthDate ב‑People בודקים אם היום יום ההולדת, ומזניקים את האירוע BirthDate עם חישוב הגיל. ב‑Form1 נרשם לאירוע זה ומדפיס את הגיל כאשר האירוע מזנק.
יש מספר סביבות פיתוח ושפות שמקלות על יישום תכנות מונחה אירועים, כגון סביבות שמציעות טכניקות לניהול אירועים ולכידתם בקלות.
תכנות מונחה אירועים הוא דרך לכתוב תוכנה שחוסכת בדיקה תמידית. אירוע הוא אות שמודיע שמשהו קרה. (אות = סימן שמשהו קרה)
בתוכנה חלקים שונים ממתינים לאירועים. המתכנת יכול להגדיר אירועים, להפעיל אותם ולרשום מי מקשיב. כל אירוע יש מקום שמזניק אותו ומקום שמגיב לו.
לדוגמה: במחלקת סטודנט יש שדה "תאריך לידה". פונקציה בודקת כל יום אם זה יום ההולדת. אם כן, היא מזניקה אירוע. מחלקה אחרת שמארחת את הסטודנט תשלח ברכה או תציג הודעה.
יש אירועי משתמש, כמו לחיצה בעכבר או הקשה במקלדת. יש אירועי מערכת, כמו טיימר שעובד בזמנים קבועים, או חיישן שמגלה תנועה. בבסיסי נתונים יש טריגרים. (טריגר = פקודה שרצה כשמוסיפים או משנים שורה בטבלה)
בדוגמה ב‑VB.NET יש שתי מחלקות: People שמבדקת יום הולדת ומזניקה אירוע, ו‑Form1 שמקשיב ומדפיס את הגיל.
יש סביבות ותכנות רבות שעוזרות ליישם אירועים בקלות.
תגובות גולשים