مقدمه
برنامهسازی رویداد محور
برنامهنویسی رویداد محور یک الگو (paradigm) است که جریان برنامه توسط رویدادها تعیین میشود، مانند اقدامات کاربر (کلیکهای ماوس، فشار دادن کلیدها)، خروجیهای حسگرها، یا پیامها از برنامهها یا رشتههای دیگر. این پارادایم ریشه در الگوی ناظر دارد، یک الگوی طراحی که به یک شی، که به عنوان موضوع یا منبع رویداد شناخته میشود، اجازه میدهد تا به اشیا دیگر، که به عنوان ناظران یا شنوندگان رویداد شناخته میشوند، اطلاع دهد که وضعیت آن تغییر کرده است.
در این الگو، منبع رویداد رویدادها را تولید میکند و شنوندگان رویداد با اجرای دستگیرههای رویداد پاسخ میدهند. این رویکرد به طور گستردهای در توسعه وب استفاده میشود، جایی که رویدادهایی مانند بارگذاری صفحات، ارسال فرمها و کلیکهای دکمهها پاسخهایی از برنامه را تحریک میکنند.
یک شنونده رویداد یک تابع است که وقتی یک رویداد خاص رخ میدهد، فعال میشود. این تابع با یک منبع رویداد ثبت میشود و زمانی که آن منبع رویدادی تولید میکند، فعال میشود. از طرف دیگر، یک دستگیره رویداد یک تابع است که وقتی شنونده رویداد فعال میشود، اجرا میشود. نقش آن پاسخ به رویداد با اجرای کد مناسب است. یک شی رویداد، که حاوی اطلاعاتی درباره رویداد رخ داده است، به دستگیره رویداد منتقل میشود. این شی میتواند برای تعیین نوع رویداد، منبع رویداد و هر اطلاعات اضافی مربوط به رویداد استفاده شود.
بیایید یک مثال ساده برای یک برنامه پخش موسیقی ساده در نظر بگیریم:
- منبع رویداد: خود برنامه پخش موسیقی. این برنامه دارای چندین دکمه است، مانند پخش، مکث و توقف، که هنگام کلیک رویداد تولید میکنند.
- شنوندگان رویداد: شنوندگان رویداد تواب عی هستند که با دکمهها ثبت شدهاند. آنها هنگام کلیک دکمهها فعال میشوند. به عنوان مثال، دکمه پخش دارای یک شنونده رویداد پخش است، دکمه مکث دارای یک شنونده رویداد مکث است و دکمه توقف دارای یک شنونده رویداد توقف است.
- دستگیرههای رویداد: دستگیرههای رویداد توابعی هستند که هنگام فعال شدن شنوندگان رویداد اجرا میشوند. به عنوان مثال، دستگیره رویداد پخش موسیقی را شروع میکند، دستگیره رویداد مکث موسیقی را مکث میکند و دستگیره رویداد توقف موسیقی را متوقف میکند.
- شی رویداد: شی رویداد حاوی اطلاعاتی درباره رویداد است، مانند نوع رویداد، منبع رویداد و هر اطلاعات اضافی مربوط به رویداد. به عنوان مثال، شی رویداد برای رویداد کلیک دکمه پخش حاوی اطلاعاتی درباره دکمه پخش، مانند شناسه آن، و نوع رویداد، مانند "کلیک" است.