Najlepsze pytania
Chronologia
Czat
Perspektywa

Programowanie sterowane zdarzeniami

paradygmat programowania Z Wikipedii, wolnej encyklopedii

Remove ads

Programowanie sterowane zdarzeniami (ang. event-driven programming) – paradygmat programowania, w którym przepływ programu jest determinowany przez zdarzenia zewnętrzne. Typowymi przypadkami są zdarzenia interfejsu użytkownika generowane przez myszę, klawiaturę, touchpady i ekrany dotykowe oraz dane z zewnętrznych czujników. Zdarzenia mogą być również generowane programowo, na przykład z komunikatów z innych programów, powiadomień z innych wątków lub innych zdarzeń sieciowych.

Programowanie sterowane zdarzeniami jest dominującym paradygmatem stosowanym w aplikacjach graficznych interfejsów użytkownika i serwerach sieciowych.

W aplikacjach sterowanych zdarzeniami zwykle występuje pętla zdarzeń, która nasłuchuje zdarzeń, a następnie uruchamia funkcję wywołania zwrotnego, gdy jedno z tych zdarzeń zostanie wykryte.

Programy sterowane zdarzeniami można pisać w dowolnym języku, choć zadanie to jest łatwiejsze w przypadku języków oferujących abstrakcje wysokiego poziomu.

Ważne jest rozróżnienie między paradygmatami opartymi na zdarzeniach i na komunikatach (zwanymi również kolejkami). Usługi oparte na zdarzeniach (np. AWS SNS) są oddzielone od swoich odbiorców. Usługi oparte na kolejkach lub komunikatach (np. AWS SQS) są natomiast połączone ze swoimi odbiorcami[1].

Remove ads

Pętla zdarzeń

Podsumowanie
Perspektywa

Ponieważ pętle zdarzeń związane z pobieraniem i wysyłaniem zdarzeń są powszechnym wzorcem w aplikacjach, wiele struktur programistycznych (frameworków) dba o ich implementację i oczekuje, że użytkownik dostarczy jedynie kod dla obsługi tych zdarzeń.

RPG, jeden z pierwszych języków programowania firmy IBM, którego koncepcja projektowa z lat 60. XX wieku była podobna do programowania sterowanego zdarzeniami omówionego powyżej, zapewniał wbudowaną główną pętlę wejścia-wyjścia (znaną jako „cykl programu”), w której obliczenia odpowiadały na „znaczniki” (flagi) ustawione wcześniej w cyklu.

Obsługa zdarzeń

Rzeczywista logika zawarta jest w funckjach obsługi zdarzeń, na które reaguje program główny. Na przykład pojedyncze kliknięcie lewym przyciskiem myszy na przycisku polecenia w programie graficznym może wywołać procedurę, która otworzy kolejne okno, zapisze dane w bazie danych lub zamknie aplikację. Wiele środowisk IDE udostępnia programistom szablony zdarzeń graficznego interfejsu użytkownika, pozwalając im skupić się na pisaniu kodu zdarzenia.

Śledzenie działania programu sekwencyjnego jest stosunkowo proste. W przypadku programowania zdarzeniowego funkcje obsługi zdarzeń uruchamiane są w odpowiedzi na sygnały zewnętrzne w nieprzewidywalnej kolejności. Dlatego wymagane jest staranne zaprojektowanie struktury tych funkcji, aby działały poprawnie niezależnie od kolejności wywołań.

Remove ads

Typowe zastosowania

Większość istniejących architektur GUI wykorzystuje programowanie sterowane zdarzeniami[2]. System Windows wewnętrznie wykorzystuje pętlę zdarzeń. Framework Java AWT przetwarza wszystkie zmiany interfejsu użytkownika w jednym wątku, zwanym wątkiem wysyłania zdarzeń (ang. event dispatching thread). Podobnie wszystkie aktualizacje interfejsu użytkownika w strukturze Java JavaFX występują w wątku aplikacji JavaFX[3].

Większość serwerów sieciowych i frameworków, takich jak Node.js, jest sterowana zdarzeniami[4].

Remove ads

Zobacz też

Przypisy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads