Lecture overview -- Keyboard shortcut: 'u'  Previous page: Observer mønstret mellem model og view -- Keyboard shortcut: 'p'  Next page: Ansvaret for placering af komponenter i et syn -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 26 : 30
Forelæsningsnoter i Objekt-orienteret Programmering
Grafiske brugergrænseflader i Java, del 1
Ansvaret for håndtering af events

Når brugeren interagerer med et program sker det gennem et syn. Herved skal modellen ændres, og der vil i de fleste tilfælde ske en opdatering af brugergrænsefladen. Vi vil nu koncentrere os om ansvarsfordelingen når det gælder fortolkning af brugerinput.

Når brugeren interagerer med programmet frembringes en række events, som påvirker programmet

Events er i bred forstand de hændelser, som en programbruger foranlediger når han eller hun anvender programmet.

Hvilken part har ansvar for at lytte til og håndtere events?

Modellen, synene, eller en tredie part?

Modellen er ansvarlig for at lytte til og for at håndtere events.

De forskellige syn er ansvarlige for at håndtere events

Naturligt, idet events påvirker modellen

Naturlig, idet events er forekommer på et bestemt syn

Programmet organiseres omkring en stor løkke, som modtager og behandler alle events

Hvert syn håndterer sine egne events

Belaster modellen med en 'fremmedelement', som det helst havde været foruden

Belaster syn med et tungt ansvar, oven i alle de eksisterende ansvar

Det kan være fordelagtigt at udfaktorisere ansvaret for event håndtering til et nyt objekt, inputkontrol objektet, som er associeret til modelobjektet med henblik på opdatering af modellen

Inputkontrol objektet er associeret til modelobjektet med henblik på opdatering af modellen. Men som vi så i eksemplet tidligere i denne lektion har inputkontrol objektet også kendskab til view objektet med henblik på udtræk af informationer fra brugergrænsefladen. Endvidere abonnererer inputkontrol objektet på hændelser fra komponenter af view objektet, således at metoder i inputkontrol objektet bliver aktiveret når brugeren arbejder på synet