Lecture overview -- Keyboard shortcut: 'u'  Previous page: Ansvarsfordeling mellem model, syn og inputkontrol [Section] -- Keyboard shortcut: 'p'  Next page: Observer mønstret mellem model og view -- 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 24 : 30
Forelæsningsnoter i Objekt-orienteret Programmering
Grafiske brugergrænseflader i Java, del 1
Ansvaret for opdatering af brugergrænsefladen

Vi vil her studere, hvordan opdateringen af brugergrænsefladen finder sted, når der er sket forandringer i den underliggende model. Vi skal i denne forbindelse have øjnene åbne for, at en model kan præsenteres i to eller flere syn.

Hvilken part har ansvar for at opdatere brugergrænsefladen?

Modellen eller brugergrænsefladen selv?

  • To forskellige alternativer:

    • Modellen er ansvarlig for opdatering af brugergrænsefladen

      • Modellen kalder direkte de procedurer, som tegner brugergrænsefladen

      • Tæt kobling mellem model og brugergrænseflade

    • Brugergrænsefladen er ansvarlig for at opdatere sig selv

      • Brugergrænsefladen får et signal (udefra) om, at modellen er ændret

      • Via signalet indhenter brugergrænsefladen selv information om forandringerne

      • Løs kobling mellem brugergrænsefladen og modellen

      • Observer design mønstret

Model ansvarlighed for opdatering af brugergrænsefladen udgør den naive løsning på problemet. Hvis der er flere samtidige syn på modellen belaster det den indre programlogik på en meget uheldig måde. Endvidere bliver der for stor viden om brugergrænsefladen i selve modellen, med deraf følgende vanskeligheder, hvis der skal laves forandringer i brugergrænsefladen på et eller andet tidspunkt

Det er måske at tage munden lidt fuld, når man siger at brugergrænsefladen opdaterer sig selv. Men vi ønsker at frigøre modellen for ansvaret for den direkte opdatering af brugergrænsefladen, herunder evt. multiple syn på modellen. Modellen skal have så lidt viden om de forskellige syn på modellen, som afspejles af brugergrænsefladen. Hermed bliver det meget lettere at ændre på brugergrænsefladen, når og hvis det bliver nødvendigt