В інформатиці, подія (англ. event) — дія яка розпізнається програмним забезпеченням та оброблюється за допомогою певних інструкцій. Комп'ютерні події можуть бути згенеровані або ініціалізовані системно, користувачем або іншими способами. Як правило, події обробляються синхронно з програмою, тобто, програмне забезпечення може мати один або кілька виділених місць, де обробляються події, часто називається [en]. Події виникають при виконанні користувачем певних дій, наприклад, натисканням клавіш на клавіатурі. Деякі події виникають по таймеру, наприклад перезапуск системи. Програмне забезпечення може також викликати свій власний набір подій в цикл обробки подій, наприклад, повідомити про завершення завдання. Деякі програми кардинально змінюють свою поведінку у відповідь на події, вони називаються подійно-орієнтованими.
Опис
Система зазвичай використовує події, коли відбувається асинхронна зовнішня діяльність, яка повинна оброблятися програмою. Наприклад, це може бути користувач, який клікає мишкою. Система створює подію в циклі подій, який очікує якоїсь діяльності, наприклад, внутрішній сигнал тривоги. Коли один з них відбувається, система збирає дані про подію та відправляє в програму-обробник, який буде правильно розподіляти виконання тієї чи іншої події. Програма також може ігнорувати події.
Існують бібліотеки для подій, які програмісти розробляють для прослуховування певної події. Дані, пов'язані з подією, як мінімум, зберігають тип події, але також можуть включати в себе іншу інформацію. Події призначені для користувача інтерфейсом програми, де дії у зовнішньому світі (натискання клавіш, зміни розміру вікна, повідомлення з інших програм) обробляються програмою як ряд подій.
Події також можуть бути використані на системному рівні, наприклад у консолі. В порівнянні з програмним та апаратним перериванням, подія, обробляється синхронно, тобто програма явно перевіряє події, які будуть виконуватися, в той час як переривання може запросити виконання дій в будь-який момент.
Делегати та події
В об'єктно-орієнтованому програмуванні подій реалізуються на основі моделі [en]. Делегат — це тип, який представляє посилання на методи з конкретним списком параметрів. При створенні екземпляра делегата цей екземпляр можна пов'язати з будь-яким методом певного класу. C# використовує події як спеціальні делегати, котрі пов'язані тільки з класом, котрий оголошує її. Це створює гарну абстракцію та захист інформацію, що є основною частиною ООП.
Приклад делегату на С#, подія помічена ключовим словом :
delegate void Notifier (string sender); class Model { public event Notifier notifyViews; public void Change() { ... notifyViews("Model"); } } class View1 { public View1(Model m) { m.notifyViews += new Notifier(this.Update1); } void Update1(string sender) { Console.WriteLine(sender + " was changed during update"); } } class View2 { public View2(Model m) { m.notifyViews += new Notifier(this.Update2); } void Update2(string sender) { Console.WriteLine(sender + " was changed"); } } class Test { static void Main() { Model model = new Model(); new View1(model); new View2(model); model.Change(); } }
Обробник
У комп'ютерному програмуванні, обробник подій це підпрограма, яка опрацьовує матеріали, отримані з програми. Обробник подій певним чином реагує на події, та починає виконувати дії які згенерувала та чи інша подія. Обробники можуть по-різному опрацьовувати події, все залежить від реалізації.
Кожна подія є фрагмент інформації на рівні додатків від базової структури. В GUI події включають в себе натискання клавіші, вибір дій та таймер. На низькому рівні, події можуть представляти зчитування потоку з файла або мережі. Обробники подій є центральним поняттям програмуванні будь-якої програми. Всі події зберігаються в диспетчері подій.
Повідомлення про подію
Повідомлення про подію генерують невеликі тлумачення такі як «Подія». Повідомлення про події — важлива функція в сучасних системах баз даних (використовується для інформування зміни бази даних), сучасних операційних системах (інформування процесів, коли вони повинні почати чи закінчити виконувати певні дії, наприклад запуск системи по таймеру). Платформи повідомлення о подіях, чи іншими словами пристрої котрі будуть генерувати події, зазвичай розробляють таким чином що вони можуть навіть не знати котрі програми будуть їх використовувати. Це роблять щоб забезпечити максимальну функціональність.
Пристрої котрі генерують події
Події миші
Вказівний пристрій який спроможний генерувати ряд програмних жестів. Миша може генерувати ряд подій: переміщення, натискання кнопки миші та рух колеса миші чи комбінація цих жестів.
Події клавіатури
При натисканні клавіші на клавіатурі або комбінацію клавіш генерується подія клавіатури, що дозволяє програмі певним чином опрацьовувати їх.
Події джойстика
Переміщення джойстика генерує аналоговий сигнал. Він має кілька кнопок, щоб викликати події. Деякі геймпади, для популярних ігрових боксів, використовують джойстики.
Події сенсора
Події, які генеруються за допомогою сенсорного екрану, зазвичай називають події жесту або натискання.
Події пристрою
Події пристрої включають в себе особливі дії пристрою, наприклад, тремтіння, нахил, поворот, переміщення і т. д.
Примітки
- . w3future.com. Архів оригіналу за 9 липня 2016. Процитовано 28 квітня 2017.
- . 11 лютого 2007. Архів оригіналу за 11 лютого 2007. Процитовано 28 квітня 2017.
- . docs.oracle.com (амер.). Архів оригіналу за 6 травня 2017. Процитовано 28 квітня 2017.
- . www.w3.org. Архів оригіналу за 27 квітня 2017. Процитовано 28 квітня 2017.
- . www.quirksmode.org (англ.). Архів оригіналу за 6 травня 2017. Процитовано 28 квітня 2017.
Див. також
- [en]
- Тригер (бази даних)
- [en]
- Подійно-орієнтоване програмування
- Обробка винятків
- Опрацьовувач переривань
- Переривання
- Спостерігач (шаблон проектування)
- [en] vs. [en]
- [en]
- [en]
Посилання
- An Events Syntax for XML [ 29 липня 2018 у Wayback Machine.]
- Event order [ 6 травня 2017 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
V informatici podiya angl event diya yaka rozpiznayetsya programnim zabezpechennyam ta obroblyuyetsya za dopomogoyu pevnih instrukcij Komp yuterni podiyi mozhut buti zgenerovani abo inicializovani sistemno koristuvachem abo inshimi sposobami Yak pravilo podiyi obroblyayutsya sinhronno z programoyu tobto programne zabezpechennya mozhe mati odin abo kilka vidilenih misc de obroblyayutsya podiyi chasto nazivayetsya en Podiyi vinikayut pri vikonanni koristuvachem pevnih dij napriklad natiskannyam klavish na klaviaturi Deyaki podiyi vinikayut po tajmeru napriklad perezapusk sistemi Programne zabezpechennya mozhe takozh viklikati svij vlasnij nabir podij v cikl obrobki podij napriklad povidomiti pro zavershennya zavdannya Deyaki programi kardinalno zminyuyut svoyu povedinku u vidpovid na podiyi voni nazivayutsya podijno oriyentovanimi Podiyi ta delegatiOpisSistema zazvichaj vikoristovuye podiyi koli vidbuvayetsya asinhronna zovnishnya diyalnist yaka povinna obroblyatisya programoyu Napriklad ce mozhe buti koristuvach yakij klikaye mishkoyu Sistema stvoryuye podiyu v cikli podij yakij ochikuye yakoyis diyalnosti napriklad vnutrishnij signal trivogi Koli odin z nih vidbuvayetsya sistema zbiraye dani pro podiyu ta vidpravlyaye v programu obrobnik yakij bude pravilno rozpodilyati vikonannya tiyeyi chi inshoyi podiyi Programa takozh mozhe ignoruvati podiyi Isnuyut biblioteki dlya podij yaki programisti rozroblyayut dlya prosluhovuvannya pevnoyi podiyi Dani pov yazani z podiyeyu yak minimum zberigayut tip podiyi ale takozh mozhut vklyuchati v sebe inshu informaciyu Podiyi priznacheni dlya koristuvacha interfejsom programi de diyi u zovnishnomu sviti natiskannya klavish zmini rozmiru vikna povidomlennya z inshih program obroblyayutsya programoyu yak ryad podij Podiyi takozh mozhut buti vikoristani na sistemnomu rivni napriklad u konsoli V porivnyanni z programnim ta aparatnim pererivannyam podiya obroblyayetsya sinhronno tobto programa yavno pereviryaye podiyi yaki budut vikonuvatisya v toj chas yak pererivannya mozhe zaprositi vikonannya dij v bud yakij moment Delegati ta podiyiDeleguvannya modeli podij ClickMe knopka dzherelo podiyi c1 c2 displaystyle c 1 c 2 cn displaystyle c n informatori yaki povidomlyayut sho stalasya podiya V ob yektno oriyentovanomu programuvanni podij realizuyutsya na osnovi modeli en Delegat ce tip yakij predstavlyaye posilannya na metodi z konkretnim spiskom parametriv Pri stvorenni ekzemplyara delegata cej ekzemplyar mozhna pov yazati z bud yakim metodom pevnogo klasu C vikoristovuye podiyi yak specialni delegati kotri pov yazani tilki z klasom kotrij ogoloshuye yiyi Ce stvoryuye garnu abstrakciyu ta zahist informaciyu sho ye osnovnoyu chastinoyu OOP Priklad delegatu na S podiya pomichena klyuchovim slovom event displaystyle event delegate void Notifier string sender class Model public event Notifier notifyViews public void Change notifyViews Model class View1 public View1 Model m m notifyViews new Notifier this Update1 void Update1 string sender Console WriteLine sender was changed during update class View2 public View2 Model m m notifyViews new Notifier this Update2 void Update2 string sender Console WriteLine sender was changed class Test static void Main Model model new Model new View1 model new View2 model model Change ObrobnikU komp yuternomu programuvanni obrobnik podij ce pidprograma yaka opracovuye materiali otrimani z programi Obrobnik podij pevnim chinom reaguye na podiyi ta pochinaye vikonuvati diyi yaki zgeneruvala ta chi insha podiya Obrobniki mozhut po riznomu opracovuvati podiyi vse zalezhit vid realizaciyi Kozhna podiya ye fragment informaciyi na rivni dodatkiv vid bazovoyi strukturi V GUI podiyi vklyuchayut v sebe natiskannya klavishi vibir dij ta tajmer Na nizkomu rivni podiyi mozhut predstavlyati zchituvannya potoku z fajla abo merezhi Obrobniki podij ye centralnim ponyattyam programuvanni bud yakoyi programi Vsi podiyi zberigayutsya v dispetcheri podij Povidomlennya pro podiyuPovidomlennya pro podiyu generuyut neveliki tlumachennya taki yak Podiya Povidomlennya pro podiyi vazhliva funkciya v suchasnih sistemah baz danih vikoristovuyetsya dlya informuvannya zmini bazi danih suchasnih operacijnih sistemah informuvannya procesiv koli voni povinni pochati chi zakinchiti vikonuvati pevni diyi napriklad zapusk sistemi po tajmeru Platformi povidomlennya o podiyah chi inshimi slovami pristroyi kotri budut generuvati podiyi zazvichaj rozroblyayut takim chinom sho voni mozhut navit ne znati kotri programi budut yih vikoristovuvati Ce roblyat shob zabezpechiti maksimalnu funkcionalnist Pristroyi kotri generuyut podiyiPodiyi mishi Vkazivnij pristrij yakij spromozhnij generuvati ryad programnih zhestiv Misha mozhe generuvati ryad podij peremishennya natiskannya knopki mishi ta ruh kolesa mishi chi kombinaciya cih zhestiv Podiyi klaviaturi Pri natiskanni klavishi na klaviaturi abo kombinaciyu klavish generuyetsya podiya klaviaturi sho dozvolyaye programi pevnim chinom opracovuvati yih Podiyi dzhojstika Peremishennya dzhojstika generuye analogovij signal Vin maye kilka knopok shob viklikati podiyi Deyaki gejmpadi dlya populyarnih igrovih boksiv vikoristovuyut dzhojstiki Podiyi sensora Podiyi yaki generuyutsya za dopomogoyu sensornogo ekranu zazvichaj nazivayut podiyi zhestu abo natiskannya Podiyi pristroyu Podiyi pristroyi vklyuchayut v sebe osoblivi diyi pristroyu napriklad tremtinnya nahil povorot peremishennya i t d Primitki w3future com Arhiv originalu za 9 lipnya 2016 Procitovano 28 kvitnya 2017 11 lyutogo 2007 Arhiv originalu za 11 lyutogo 2007 Procitovano 28 kvitnya 2017 docs oracle com amer Arhiv originalu za 6 travnya 2017 Procitovano 28 kvitnya 2017 www w3 org Arhiv originalu za 27 kvitnya 2017 Procitovano 28 kvitnya 2017 www quirksmode org angl Arhiv originalu za 6 travnya 2017 Procitovano 28 kvitnya 2017 Div takozh en Triger bazi danih en Podijno oriyentovane programuvannya Obrobka vinyatkiv Opracovuvach pererivan Pererivannya Sposterigach shablon proektuvannya en vs en en en PosilannyaAn Events Syntax for XML 29 lipnya 2018 u Wayback Machine Event order 6 travnya 2017 u Wayback Machine