private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Была нажата кнопка");
}
Bu yerda hodisa ishlovchisi yuboruvchi parametri uzatiladigan protsedura boʻlib, odatda hodisa manbasiga koʻrsatgichni oʻz ichiga oladi. Bu sizga bir nechta tugmachalardan hodisalarni boshqarish uchun bir xil protseduradan foydalanishga imkon beradi, ularni ushbu parametr bilan ajratib turadi.
Dasturlash tillari. C# da hodisalar til elementi sifatida amalga oshiriladi va sinflar a'zolari hisoblanadi. Bu yerda hodisa mexanizmi nashriyot/obunachi dizayn namunasini amalga oshiradi. Hodisa deklaratsiyasiga misol:
public class MyClass
{
public event EventHandler MyEvent;
}
Bu erda EventHandler - bu hodisani qayta ishlash protsedurasi turini belgilaydigan delegat. Tadbirga obuna bo'lish quyidagicha amalga oshiriladi:
myClass.MyEvent += new EventHandler(Handler);
Bu yerda myClass MyClass sinfining namunasi, Handler ishlov beruvchi protsedurasi. Hodisa cheksiz miqdordagi ishlov beruvchilarga ega bo'lishi mumkin. Hodisa ishlov beruvchisi qo'shilsa, u maxsus stekga qo'shiladi va voqea sodir bo'lganda, barcha ishlov beruvchilar stekdagi tartibida chaqiriladi. Hodisaga obunani bekor qilish, ya'ni ishlov beruvchini o'chirish xuddi shunday, lekin "-=" operatori yordamida amalga oshiriladi.
Turli xil dasturlash tillari SOP ni turli darajada qo'llab-quvvatlaydi. Quyidagi tillar voqealar uchun eng to'liq yordamga ega (to'liq bo'lmagan ro'yxat):
Perl
Delphi
ActionScript 3.0,
C#
JavaScript
Boshqa tillar, aksariyat hollarda, hodisalarni istisnolar sifatida qo'llab-quvvatlaydi.
Hodisa modeli. Talab bo'yicha hodisalarni dasturlash modeli
Ilova arxitekturasini yaratishning eng keng tarqalgan usullaridan biri bu hodisalarni yaratish va keyinchalik qayta ishlashga asoslangan yondashuvdir. Umuman olganda, hodisa modeli ilovaning ma'lum bir qismini tashkil qilish uchun ham ishlatilishi mumkin (masalan, tranzaktsiyalarni qayta ishlash).
Voqea boshqaruvchisi, hodisalarni almashish usulini (protokolini) tavsiflovchi manba interfeyslaridan (kengroq ma'noda) voqea bildirishnomalarini oladigan kuzatuvchi, voqea ishlovchisi deb ham ataladi.
Ob'ektga yo'naltirilgan dasturlashda hodisa - bu muayyan shartlar bajarilganda bajariladigan kodning turli nuqtalarida paydo bo'ladigan xabar.
Voqealar dasturiy ta'minot qanday munosabatda bo'lishini oldindan bilish uchun mo'ljallangan.
Vazifani hal qilish uchun hodisa ishlov beruvchilari yaratiladi: dastur belgilangan holatga kirishi bilanoq voqea sodir bo'ladi, xabar yuboriladi va ishlov beruvchi bu xabarni ushlab turadi. Umumiy holda, ishlov beruvchiga hech narsa o'tkazilmaydi yoki qayta ishlanayotgan hodisani boshlagan (tutgan) ob'ektga havola uzatiladi. Maxsus holatlarda, ba'zi o'zgaruvchilarning qiymatlari yoki ba'zi boshqa ob'ektlarga havolalar ishlov beruvchiga uzatiladi, shunda ushbu hodisani qayta ishlash voqea sodir bo'lgan kontekstni hisobga olishi mumkin.
Eng oddiy hodisa - bu qandaydir protseduraning boshlanishi yoki tugashi haqida xabar beruvchi hodisa. Voqea o‘z mohiyatiga ko‘ra, qandaydir ob’ekt holatining o‘zgarishi haqida xabar beradi. Voqealar foydalanuvchi interfeysida eng aniq ifodalanadi, bunda foydalanuvchining har bir harakati voqealar zanjirini hosil qiladi va keyinchalik ular ilovada qayta ishlanadi.
Umumiy tavsif – Ob'ektga yo'naltirilgan tahlilda ob'ektlarning dinamik harakatini tavsiflash uchun holat modelidan foydalanish odatiy holdir.
Hodisa - ob'ektning bir holatdan ikkinchi holatga o'tishi. Ob'ektlarning o'zaro ta'siri hodisalar yordamida ham amalga oshiriladi: bir ob'ekt holatining o'zgarishi boshqa ob'ekt holatining o'zgarishiga olib keladi va hodisa ob'ektlar orasidagi aloqa vositasi bo'lib chiqadi.
Hodisa “haqiqiy dunyoda biror narsaning yangi holatga oʻtganligini bildiruvchi hodisa yoki signalning mavhumligi”dir. Bundan tashqari, tadbirning to'rt jihati ajralib turadi:
label — hodisaning yagona identifikatori.
qiymat - sodir bo'lgan voqeaning mohiyati haqida matnli xabar.
maqsad - hodisani qabul qiladigan hodisa modeli.
ma'lumotlar - bir ob'ektdan ikkinchisiga uzatiladigan ma'lumotlar.
Voqealar sinf yoki ob'ektga muayyan vaziyatlar yuzaga kelganda boshqa sinflar yoki ob'ektlarni xabardor qilish imkonini beradi. Hodisani yuboradigan (yoki ko'taradigan) sinf nashriyotchi, hodisani qabul qiluvchi (yoki boshqaradigan) sinflar esa obunachilar deb ataladi. Voqealar - bir xil turdagi delegatlarni saqlash, qo'shish va o'chirishga qodir bo'lgan delegat misollari (voqea ishlov beruvchilari). Tadbir ko'tarilganda, tadbirga qo'shilgan barcha delegatlar chaqiriladi. Voqealarni faqat voqea tegishli bo'lgan sinf yoki ob'ektdan chaqirish mumkin.[3] Masalan, grafik interfeyslarni ishlab chiqishda foydalaniladigan delegat-hodisalar modeli asoslanadi.
Hodisalarning manbai bo'lgan boshqaruv ob'ekti
Manbadan voqea bildirishnomalarini oladigan kuzatuvchi, voqea ishlovchisi deb ham ataladi
Hodisalar almashinuvi usulini (protokolini) tavsiflovchi interfeyslar (kengroq ma'noda).
Bundan tashqari, model quyidagilarni talab qiladi:
Har bir kuzatuvchi obuna bo'lishni xohlagan voqealar uchun interfeysni amalga oshirdi
Har bir kuzatuvchi voqealarni qabul qilish niyatini bildirish uchun manbada ro'yxatdan o'tishi kerak.
Manba har safar hodisani chiqaradi, u interfeys protokoli yordamida uni kuzatuvchilarga uzatadi.
Do'stlaringiz bilan baham: |