Cuprins:
Video: What does Pars Defect in the lumbosacral region signify? - Dr. Hanume Gowda 2024
Cuvântul eveniment implică toate tipurile de imagini. Pentru un nonprogrammer, un eveniment este doar "ceva ce se întâmplă. "Dacă sunteți obișnuiți să vă ocupați de ferestre și cadre în Java, probabil că vă gândiți la un eveniment ca la un eveniment care trezește o bucată de cod. De exemplu, clicul sau apăsarea pe tastă de către un utilizator afișează codul care stabilește o opțiune și afișează o casetă OK. Clicul sau apăsarea de taste în sine se numește un eveniment deoarece se întâmplă independent de programul în execuție. Doar utilizatorul știe când va apăsa acel buton. Și când butonul este apăsat, o parte din programul Java se trezește și se ocupă de situație. Acest scenariu se numește programare condusă de evenimente .
Programarea bazată pe evenimente
Programele SAX sunt conduse de evenimente . De exemplu, te duci în pat pentru un somn bun. Ajungeți să vă setați ceasul deșteptător și apoi să vă așezați, să vă închideți ochii și să deveniți inconștient pentru câteva ore. Apoi, un eveniment important se întâmplă: Se ajunge la un anumit moment al zilei. Când evenimentul are loc, ceasul deșteptător intră în modul "trezire" - și vă face să vă agitați de somnul odihnitor.
Iată un alt scenariu. Sunteți un director ocupat și veți ieși de câteva ore, dar nu doriți să pierdeți o afacere importantă. Înainte de a părăsi biroul, îi spui asistentului tău: "Sună-mă dacă vine ceva important. "Emiterea acestei comenzi este asemănătoare cu setarea ceasului deșteptător. Spuneți asistentului dvs. (ceasul deșteptător) să vă trezească dacă are loc un eveniment. Efectuarea acestei solicitări către asistentul dvs. (sau la ceasul deșteptător) se numește înregistrare . În oricare scenariu, te înregistrezi cu un serviciu de trezire. După ce te-ai înregistrat, poți să-ți urmărești lipsa de activitate, ignorând toată afacerea reală până când se întâmplă ceva. Apoi …
Inel, inel. Telefonul tău se holbează la tine. "Buna? „
„Bună ziua. Acesta este asistentul tău. Am cifrele de vânzări pentru primul trimestru. Sunt 1 milion, 4 milioane și 2 milioane. "
" Să vedem. Acesta este un total de 7 milioane ", spune tu. "O voi remarca pe PalmPilot. Mulțumiri. " Ai închis telefonul.
Câteva momente mai târziu, primiți un alt apel. "Președintele Big Bucks, Inc. vrea să încheie această afacere. Vorbeau 10 milioane de dolari. „
" Hmm, "răspundeți. "Asta va aduce veniturile noastre anuale până la 17 megabiți. Voi păstra aceste informații în aplicația mea de calcul tabelar. Multumesc pentru apel. "
Fiecare din aceste interacțiuni este cunoscută sub numele de apel invers .La începutul zilei, când v-ați înregistrat dorința cu asistentul, ați solicitat un apel invers. Apoi, de fiecare dată când are loc un eveniment, asistentul face o invitație de a vă anunța despre eveniment. În termeni de programare Java, asistentul apelează una dintre multele dvs. metode (unul dintre subprogramele dvs. Java).
Esența programării bazate pe evenimente
Programarea bazată pe evenimente are trei părți:
- Înregistrare: Înregistrați-vă dorința de a fi notificată ori de câte ori apare un eveniment. Înregistrați această dorință cu o altă bucată de cod - un alt obiect, de obicei ceva importat (cum ar fi o bucată de cod care face parte din API-ul altcuiva). Acest obiect urmărește apoi, din spatele scenei, apariția evenimentului pe care l-ați specificat.
- Evenimentul apare: Se întâmplă un eveniment specific.
- Callback: Cealaltă bucată de cod efectuează un apel invers. Una dintre metodele tale este chemată.
Două tipuri de cod
Este utilă o distincție între codul activ și codul pasiv :
- Codul activ are o metodă principală. Codul activ, odată ce începe să fie difuzat, se află pe scena centrală. Codul activ conține firul de execuție care controlează întregul joc cu mingea.
- Codul pasiv stă acolo, așteptând să fie chemat. O clasă de zaruri pasive nu face nimic până când un alt cod cheamă Dice. rola ().
Acum, ați putea crede că codul pasiv este tot ce aveți nevoie pentru programarea bazată pe evenimente, dar nu este. Pentru manipularea evenimentului, aveți nevoie de acest pas de înregistrare. Codul pasiv incepe prin a fi inregistrat cu o alta bucata de cod.
Pentru a consolida această noțiune de înregistrare, gândiți-vă la un exemplu din lumea de pe ecran a șoarecilor, ferestrelor și butoanelor. Creați o fereastră sau un cadru. Doriți ca rama dvs. să răspundă clicurilor de mouse, pentru a emite următoarea comandă: butonul
. addMouseListener (aceasta);
Această comandă înregistrează cadrul dvs. cu butonul. Comanda spune, de fapt, Ori de câte ori se întâmplă un eveniment de mouse, apelați una dintre metodele de manipulare a mouse-ului de pe cadru . Mai târziu, când utilizatorul dă clic pe mouse, cadrul primește un apel invers. Calculatorul apelează metoda mouse-ului pentru cadru al mouse-uluiClicked.
Evenimente SAX
Sigur, SAX este condus de evenimente, dar acest lucru nu înseamnă că un program SAX așteaptă clicuri de mouse. În schimb, codul SAX urmează modelul registrului-eveniment-apel inversat descris în ultimele câteva paragrafe. Fiecare program SAX are două bucăți de cod indispensabil:
- O bucată de cod pe care o scrieți - numită handler . (Handlerul dvs. poate extinde o clasă DefaultHandler pre-scris.) Handlerul este ca executivul de milioane de dolari din secțiunea precedentă.
- O bucată de cod pe care, în mod normal, nu o scrieți - parserul . Parserul joacă un rol ca cel al asistentului executivului. API-ul Java 1. 4 are un parser integrat. Creați o instanță a acestui parser și apoi înregistrați procedura de manipulare cu instanța parserului respectiv. De fapt, îi spuneți instanței să vă apeleze la handler ori de câte ori are loc un eveniment.
Orice ce are de a face cu XML este nou, și este încă într-o stare de flux. Din acest motiv, terminologia este patch-uri impreuna in unele moduri ciudate. În timp ce dezvolta SAX versiunea 2, unii tehnici au avut un festival de make-up-new-names. Ceea ce se numește în mod normal un "parser" este încorporat într-o interfață Java numită XMLReader. A fost o clasă numită org. XML. Sax. Parser, dar clasa a fost depreciată (ceea ce înseamnă că ar trebui să-l răsturnați de pe partea inferioară a pantofului tău). Pentru a face lucrurile un pic mai complicate, există încă un instrument de analiză, javax. XML. Derivatoare. SAXParser. Utilizați acest SAXParser pentru a vă face un XMLReader. Cu orice noroc, veți deveni rapid obișnuiți cu această terminologie complicată. Pentru moment, amintiți-vă că ceea ce se numește "parser" este de obicei o instanță a XMLReader.
Scenariul de înregistrare și de apel invers este ceea ce face SAX determinat de eveniment. Acum, amuzamentul este că un eveniment SAX nu este tangibil. Un eveniment SAX nu vă va reaminti de o apăsare de taste sau de un clic pe buton. În SAX, parserul scanează un document XML de sus în jos. Ori de câte ori parserul întâlnește ceva interesant, parserul declanșează un eveniment și îl sună pe handler. Apoi, depinde de manager să facă ceva despre această întâlnire interesantă.