interfaţă automaton

interfaţă automaton

Astăzi, există foarte puține software-ul „non-server“, fără o interfață de utilizator. Nu este faptul că ele nu există deloc, dar totuși, orice program care pretinde a fi „user-friendly pentru utilizator mediu“ ar trebui să aibă o interfață grafică de utilizator. În același timp, crearea interfeței cu utilizatorul nu este la fel de bine luminat ca dezvoltarea de software. Din păcate, mulți oameni de acest lucru, deoarece se pare că interfața cu utilizatorul este „doar pentru a fi“, și este unul dintre motivele pentru care de ieșire este atât de mult programele de prost proiectate.

Metodele de astăzi pentru a crea o interfață

Se pare că frumos și, în același timp, de calitate (în termeni de cod) în nici un fel? Acest articol oferă o modalitate de a crea manipulare eveniment, care vă permite să automatizeze acest lucru, fără îndoială, o fază dificilă a interfeței.

principii generale

Dacă ne amintim că această mașină de stat și se compară cu ceea ce se întâmplă în momentul interacțiunii cu utilizatorul, se poate înțelege că, în aceste două entități multe în comun. Starea interfeței, puteți lua de stat (apăsat butonul sau eliberat, este selectată caseta de validare sau nu selectat de prima sau a doua filă, și așa mai departe), evenimente de utilizator pot declanșa automat. De exemplu, în Fig. 1 este un grafic al automatului tranzițiile fereastra conventionala intrare dialog în timp ce introduceți numărul (Figura 2). Linia punctată prezintă evenimentele din liniile solide - automaton de stat. Din motive de concizie și claritate, în acest exemplu, „nume“ ale stărilor de acțiunile întreprinse efectuate în mod automat în această stare.

interfaţă automaton

Figura 1. Diagrama de evenimente de dialog tranzițiile de mașini de prelucrare prezentat în Fig. 2.


Figura 2. Dialog.

După cum se poate observa, unele state (în acest caz „Modificarea aspectului liniilor“) sunt reutilizate. Pentru a pune în aplicare pe deplin procesarea evenimentelor de interfață se poate realiza numai în fiecare stat sub formă de cod și permite sistemului să creeze în mod automat de manipulare eveniment provocările codului scris. Deoarece fiecare procesor slab conectat la restul, există posibilitatea de a separa activitatea de programatori. Și pentru că este destul de simplu (doar a efectua anumite acțiuni, fără a crea logica), este posibil să se instruiască programator neexperimentat ( „encoder“), fără să se teamă pentru calitatea.

În cazul unei astfel de interfață logică partiție este mult mai ușor de a testa state individuale, tranziții. Deoarece Graficul prezinta toate datele posibile de intrare, și tranzițiile arată cum să dezvolte evenimentul, atunci testarea automată este de asemenea posibilă.

Aceasta conduce la o interfață grafic de utilizator de stat, ceea ce este destul de ușor de a crea ( „desen“), care este evident, acesta va fi transformat în cod (de mână se poate scrie doar codul în sine afirmă, care sunt mult mai ușor de manipulare eveniment). Atunci când are loc această conversie în mod automat, ceea ce elimină posibilitatea de erori.

De asemenea, îmbunătățește vizibilitatea manipulare eveniment de prezentare, este posibil să se re-utilizare și șabloane de aplicații care trebuie să conducă cu siguranță la îmbunătățirea calității logicii de interfață dezvoltată.

bibliotecă jInterface

bibliotecă jInterface concepute pentru a testa posibilitățile de această abordare pentru a crea logica interfeței.

  • condiții - clase pachete standard de condiții care sunt verificate pentru a verifica pentru un „declanșat“ tranziții automate.
  • ICondition - condiții de interfață.
  • Întotdeauna - condiția cea mai simplă, care este întotdeauna îndeplinită.
  • ascultători - „ascultători“ standard de înlocuire, pentru a putea adăuga prelucrarea automată strung de evenimente în standardul stil AWT / Swing.
  • Listener - clasa strămoșul Abstract de „clase de automate de elevi.“
  • AutoFocusListener
  • ...
  • logare - pachet, care găzduiește unele clase ajutătoare pentru logare crearea și funcționarea aparatului.
  • ILogger - o interfață comună
  • SimpleLogger - O clasă de protocol în ieșirea standard.
  • Automatelor - clasa de mașină. Ea se ocupă de toate evenimentele care vin din partea publicului.
  • Evenimente - evenimente care provin din ascultător.
  • IActions - acțiuni care pot fi executate în cazul în care acesta intră în starea sau de tranziție.
  • Statul - starea automatului.
  • Tranziția - tranziția de la stat la stat.
  • XMLAutomata - o clasă care se extinde posibilitatea de inițializare automată folosind fișier XML.

Procesul de creare a unui automaton constă în crearea statelor, tranziții și condiții pentru aceste tranziții ulterioare „ancora“ la mașină de interfață. Acest lucru se face prin evenimente AWT sau Swing convenționale. În acest caz, toate evenimentele care ar trebui să manevreze aparatul, pentru a transfera controlul acestuia. Listarea 1 conține fragmentul ascultător eveniment pierdere achiziție / focus (FocusListener).

Masina creat de informațiile care sunt conținute într-un special XML-fișiere. Prin descărcarea acestui fișier inițializează obiectul și creează o structură de mașini (state, tranziții, evenimente). Listarea 2 arată un fișier XML, care corespunde la o mașină ceva mai complicată decât cea indicată în figura 1 (câmp parola introdusă, o logică ușor diferită de procesare a evenimentului)

Fiecare stat poate conține cod care se execută atunci când a lovit în această stare, iar lista tranzițiilor la termenii. După executarea verificărilor de cod toate condițiile și tranzițiile puteți trece la prima condiție, care este satisfăcută (Listarea 4).

Pe parcursul tranziției, codul pe care îl poate potrivi, și există foarte trecerea la un nou stat (a se vedea Listarea 5).

În cazul în care nu există nici o tranziție, fie toate condițiile de tranziție nu sunt îndeplinite, mașina de lucru este finalizată. Acesta începe procesarea evenimentului următor, iar în cazul în care evenimentul nu este prezent, automata a firului este suspendat până la primirea acestora.

dezvoltarea în continuare

Abordarea presupune crearea unei biblioteci model comun pentru reutilizare. Poate fi folosit ca o mașină de template-uri care implementează o anumită funcționalitate sau a modelelor de state, tranziții, grupuri de state, și așa mai departe. Toate acestea vor accelera și mai mult procesul de dezvoltare a interfeței, îmbunătățind în același timp calitatea acestuia. În plus, se va crea, împreună cu un set standard de „componente“ pentru a dezvolta un set standard de interfață de „condiții“ pentru dezvoltarea logicii de interfață.

  • Mai încet operația. Nimic nu vine gratis. În mod firesc, lucrarea automaton ia ceva timp. Dar, în comparație cu rata de primire a evenimentelor (acțiuni de utilizator), de data aceasta este neglijabilă. În mod ideal, utilizatorul final nu observă nimic, din punctul său de vedere, programul va funcționa în același mod ca și înainte.
  • Necesitatea creării de biblioteci și biblioteci de componente funcționează cu „mașină-gun“ interfață pentru limbi diferite, sisteme de operare, și așa mai departe. Cu toate acestea, aceste biblioteci sunt foarte rapid și ușor de utilizat și de sprijin.

concluzie

Metoda prezentată în articol, este fundamental diferită de metodele care sunt utilizate în prezent pentru a crea o logică interfață de utilizator. Acesta vă permite, în cele din urmă, pentru a îmbunătăți calitatea finală a interfeței și codul sursă, accelera dezvoltarea și a simplifica întreținerea. Metoda se bazează pe abordarea, promovată în mod activ de Anatoliem Abramovichem Shalyto [1] și utilizează cele mai multe dintre avantajele metodei de programare automata.

În prezent, dezvoltarea bibliotecii nu este oprit, este activ finalizarea fundamentele teoretice și componente software.

literatură