Video: How to link one JFrame to another JFrame in Java Swing 2025
IOS-rammene er objektorientert. En enkel måte å forstå hva det egentlig betyr er å tenke på et lag som jobber på et kontor. Arbeidet som må gjøres er delt opp og tildelt enkelte gruppemedlemmer (i dette tilfellet objekter). Hvert lagmedlem har en jobb og jobber med andre lagmedlemmer for å få ting gjort.
I tillegg bryr seg et godt teammedlem ikke om hvordan andre medlemmer gjør sitt arbeid, bare at de gjør det i henhold til avtalt arbeidsdeling. På samme måte tar en gjenstand i objektorientert programmering seg av sin egen virksomhet og bryr seg ikke hva objektet i den virtuelle kabinen naboen gjør, så lenge det vil gjøre hva det skal gjøre når det blir bedt om å gjøre det.
Objektorientert programmering ble opprinnelig utviklet for å gjøre koden mer vedlikeholdbar, gjenbrukbar, utvidbar og forståelig ved å inkapslere all funksjonalitet bak veldefinerte grensesnitt. De faktiske detaljer om hvordan noe fungerer (samt dataene som brukes til å gjøre det arbeidet) er skjult, noe som gjør det enklere å endre og utvide en app.
Flott - så langt - men et plagsomt spørsmål plager fortsatt programmerere:
Nøyaktig hvordan bestemmer du objektene og hva de gjør?
Noen ganger er svaret på det spørsmålet ganske enkelt - bare bruk den virkelige verden som en modell. (Eureka!) Men når det gjelder en generisk programstruktur, hvordan gjør du bestemmer hva objektene skal være? Det kan ikke være så åpenbart.
MVC-mønsteret er en veletablert måte å gruppere appfunksjoner på i objekter. Variasjoner av det har eksistert i hvert fall siden de små dager av Smalltalk, et av de aller første objektorienterte språkene. MVC er et mønster på høyt nivå - det adresserer arkitekturen til en app og klassifiserer objekter i henhold til de generelle rollene de spiller i en app, i stedet for å bore ned i detaljer.
MVC-mønsteret skaper i virkeligheten et miniatyrunivers for appen, befolket med tre forskjellige typer objekter. Det spesifiserer også roller og ansvar for alle tre typer objekter og spesifiserer måten de skal samhandle med hverandre. For å gjøre ting mer konkret (det vil si å holde hodet eksploderende), tenk på en stor, vakker, 60-tommers flatskjerm-TV. Her er kjernen:
-
Modellobjekter: Disse objektene sammen består av innholdet "motor" av appen din. De inneholder appens data og logikk - noe som gjør appen din mer enn bare et pent ansikt.I RoadTrip-appen holder modellen for eksempel en liste over hendelser og severdigheter, samt navnet og plasseringen til destinasjonen og et bakgrunnsbilde som skal brukes.
Du kan tenke på modellen (som kan være ett objekt eller flere som samhandler) som et bestemt fjernsynsprogram, en som ganske ærlig talt ikke gir en oversikt over hvilket TV-sett det vises på.
Faktisk bør modellen ikke gi et hoot. Selv om den eier dataene, burde den ikke ha noen forbindelse til brukergrensesnittet og burde være salig uvitende om hva som er gjort med dataene sine.
-
Se objekter: Disse objektene viser ting på skjermen og svarer på brukerhandlinger. Nesten alt du kan se er en slags visningsobjekt - vinduet og alle kontrollene, for eksempel.
Dine synspunkter vet hvordan du viser informasjon de mottar fra modellobjektet og hvordan du får innspill fra brukeren modellen kan trenge. Men utsikten i seg selv burde ikke vite noe om modellen. Det kan håndtere en forespørsel om å vise noen hendelser, men det bryr seg ikke med hva den forespørselen betyr.
Du kan tenke på visningen som en TV-skjerm som ikke bryr seg om hvilket program det viser eller hvilken kanal du nettopp har valgt.
UIKit-rammen gir mange forskjellige typer synspunkter.
Hvis visningen ikke vet noe om modellen, og modellen ikke vet noe om visningen, hvordan får du data og andre meldinger til å passere fra den ene til den andre? For å få den samtalen påbegynt (Modell: "Jeg har nettopp oppdatert dataene mine." Vis: "Hei, gi meg noe å vise", for eksempel), du trenger det tredje elementet i MVC triumvirat, kontrolleren.
-
Kontrollørobjekter: Disse objektene kobler appens visningsobjekter til modellobjektene. De leverer visningsobjektene med det de trenger å vise (hentes fra modellen) og gir også modellen med brukerinngang fra visningen.
Du kan tenke på kontrolleren som kretskortet som trekker ut visningen av kabelen, og sender den deretter til skjermen eller ber om et bestemt betal-for-visning-program.
Med Xcode, er både modell- og visningsobjekter ofte bygget med grafiske brukergrensesnitt som Interface Builder for visninger og visningskontrollere og Data Model Editor for Core Data-objekter. Kontrollører er nesten alltid bygget med kode. Å bygge et kontrollerobjekt er den delen av MVC som, for mange utviklere, "føles" som tradisjonell koding.
Den grunnleggende applikasjonsarkitekturen ser slik ut.
Når du tenker på appen din når det gjelder modell, visning og kontrollobjekt, begynner UIKit-rammen å gi mening. Å forstå rammen på denne måten, begynner også å løfte tåken som henger over hvor du skal gjøre minst en del av din appspesifikke oppførsel, gå.
I Objektiv-C inneholder klasser instansvariabler, egenskaper og metoder (som kan få tilgang til instansvariablene i en klasse). Klasser handler om filer i prosjektet ditt som inneholder kode. Klasser er typer i programmet.
Objekter finnes derimot ved kjøretid og er forekomster av en klasse.Du kan tenke på en klasse som en tegning for å bygge et objekt av den typen.
