bild
Skolan för
elektroteknik
och datavetenskap

Programutvecklingsteknik, från föreläsning 4

Obs! Sidan är en sammanfattning av föreläsningen. Allt som tas upp på föreläsningen står inte här.

Föreläsningsbilder: F4-bilder

Här är lite komplettering till bilderna.

Metoden equals() i Object

Java-objekt kan jämföras obj1.equals(obj2). Den metod som ärvs från Object gör jämförelsen obj1==obj2. Det betyder att endast samma objekt ger true. equals() kan definieras om som man vill, t.ex. så att objekt med lika innehåll ger true. Programet EqualsDemo testar likhet mellan objekt av klassen Spelkort (Spelkort visades på föreläsning 1). Först kördes programmet med gamla definitionen av Spelkort. Därefter skrevs en equals() i Spelkort och testprogrammet kördes igen. Här finns Spelkort med equals och testprogrammet EqualsDemo.java. Prova att kommentera bort equals() och köra demoprogrammet igen!

MVC - Model-View-Control

Hann vi inte med på föreläsning 4, det kommer på föreläsning 5.

Här är litet program som demonstrerar en ren MVC-tillämpning. Modellen beskriver en sinuskurva med amplitud, period och fas. Modellen har metoder för att uppdatera data samt att beräkna värdet av aktuell sinusfunktion för ett givet x-värde.

Vy-delen av programmet visar en aktuell bild av modellen, dvs ritar upp aktuell kurva och skriver ut de data som modellen innehåller.

Kontrolldelen av programmet har hand om knappar för uppdatering av modellens data.

Här är kod för de tre delarna:   Sinusmodell.java   Sinusvy.java   Sinuskontroll.java

testa i applet  (appletkoden)

Vy-delen och kontrolldelen är grafiska objekt, syns tydligt då programmet körs.

Vy-delen måste känna till modellen, den ska ju visa en aktuell bild av densamma. Kontroll-delen måste känna till både vy och modell. Kontroll-delen tar in användarens knapptryckningar, uppdaterar modellen och beordrar vy-delen att rita ny bild.

Modellen har inga referenser till andra objekt.

Vy- och kontroll-delarna får referenser till modell respektivt modell + vy genom parametrar i sina konstruktorer.

Copyright © Sidansvarig: Ann Bengtsson <ann@nada.kth.se>
Uppdaterad 2013-04-20