Hjem Sosiale medier Hvordan man bruker modellvisningsregulatoren (MVC) Designmønster for å utvikle en iOS-app - dummies

Hvordan man bruker modellvisningsregulatoren (MVC) Designmønster for å utvikle en iOS-app - dummies

Video: How to link one JFrame to another JFrame in Java Swing 2024

Video: How to link one JFrame to another JFrame in Java Swing 2024
Anonim

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.

Hvordan man bruker modellvisningsregulatoren (MVC) Designmønster for å utvikle en iOS-app - dummies

Redaktørens valg

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Skjermbildet i QuickBooks Modify Report dialogboksen lar deg kontrollere rapportintervalldatoen, rapportgrunnlaget, kolonnene og en annen formatering. Bokstavene Rapporter datoområde - Datoer, Fra og Til - gjør det samme som Datoer, Fra og Til bokser i Rapportvinduet. Disse boksene lar ...

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Hvis du klikker Tilpass rapport, QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Redaktørens valg

Administrere Cloud Computing Resources - dummies

Administrere Cloud Computing Resources - dummies

I teorien bør cloud computing-tjenester ikke være forskjellig fra ressursene i din eget miljø, bortsett fra at de bor eksternt. Ideelt sett har du en komplett visning av cloud computing-ressursene du bruker i dag, eller vil kanskje bruke i fremtiden. I de fleste skymiljøer kan kunden bare få tilgang til ...

Tips for Going Cloud med datanettverkene dine - dummies

Tips for Going Cloud med datanettverkene dine - dummies

Beregning med datanettverket ditt kan være, hva skal du gjøre for å ta nettverket ditt mot skyen? Her er noen anbefalinger: Ikke stole på en dårlig Internett-tilkobling. Først og fremst, før du tar noen av nettverksoperasjonene i skyen, gjør du ...

Nettverkstjenester levert gjennom Cloud Computing - dummies

Nettverkstjenester levert gjennom Cloud Computing - dummies

Tre forskjellige typer nettverkstjenester kan leveres via skyen: applikasjoner , plattformer og tjenester (infrastruktur). I de følgende avsnittene beskrives disse tre typer skyttjenester i større detalj. Programmer i skyen Vanligvis kalt Software as a Service (SaaS), fullt funksjonelle applikasjoner kan leveres via skyen. En av ...

Redaktørens valg

10 Hadoop Ressurser verdt en bokmerke - dummies

10 Hadoop Ressurser verdt en bokmerke - dummies

Følgende er ti fantastiske Hadoop-ressurser som er verdige til å skape en bokmerke i nettleseren din. Disse ressursene hjelper deg med å skape en livslang læringsplan for Hadoop. Sentralnervesystemet: Apache. org Apache Software Foundation (ASF) er det sentrale fellesskapet for open source-programvareprosjekter. Ikke bare et prosjekt kan være et Apache-prosjekt - ...

Data transformasjon i Hadoop - dummies

Data transformasjon i Hadoop - dummies

Ideen om Hadoop-inspirerte ETL motorer har fått mye trekkraft de siste årene. Hadoop er trods alt en fleksibel datalagrings- og behandlingsplattform som kan støtte store mengder data og operasjoner på dataene. Samtidig er det feiltolerant, og det gir mulighet for kapital- og programvarekostnad ...

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Når du lagrer en fil i HDFS, bryter systemet det ned i et sett med individuelle blokker og lagrer disse blokkene i forskjellige slave noder i Hadoop-klyngen. Dette er en helt vanlig ting å gjøre, da alle filsystemer bryter filer ned i blokker før de lagres til disk. HDFS har ingen ...