Hvordan implementere MVC-arkitektur i Java?



Denne artikkelen om MVC-arkitektur i Java hjelper deg med å forstå hva MVC-designmønster er og hvordan det gjør det enkelt å designe webapplikasjoner.

I feltet Webutvikling, Model-View-Controllerer en av de mest omtalte i nettprogrammeringsverdenen i dag. MVC Architecture ble opprinnelig inkludert i de to store rammene for webutvikling - Struts og Ruby on Rails . I denne artikkelen, la oss utforske litt om MVC Architecture i .

Temaene som vil bli dekket i denne artikkelen er som følger:





Før vi faktisk get inn i det tekniske ved MVC Architecture, er det visse konsepter du trenger å vite.

  • Design mønster , innen programvareteknikk, er en teknikk for å løse et ofte forekommende problem når du designer programvare.
  • Designe modell, spesifiserer hvilken type arkitektur du bruker for å løse problemet eller utforme modellen.
  • Det er to typer designmodeller : Modell 1 Arkitektur , Model 2 (MVC) Architecture.

Hva er MVC Architecture i Java?

Modelldesign basert på MVC-arkitektur følger MVC og de skiller applikasjonslogikken fra brukergrensesnittet når de designer programvare. Som navnet antyder har MVC-mønster tre lag, som er:



  • Modell - Representerer forretningslaget i applikasjonen
  • Utsikt - Definerer presentasjonen av søknaden
  • Kontroller - Administrerer flyten av applikasjonen

MVC - MVC Architecture in Java - Edureka

I Java-programmering sammenheng,modellen består av enkel Java-klasser , viser visningen dataene og kontrolleren består av . Denne separasjonen resulterer i at brukerforespørsler blir behandlet som følger:



  1. Nettleseren på klienten sender en forespørsel om en side til kontrolleren som er på serveren
  2. Kontrolleren utfører handlingen med å påkalle modellen og henter dermed dataene den trenger som svar på forespørselen
  3. Kontrolleren gir deretter hentede data til visningen
  4. Visningen gjengis og sendes tilbake til klienten slik at nettleseren kan vises

Separere et program idisse tre forskjellige komponentene er en god ide av flere grunner. La oss ta en titt på hva det er.

Fordeler med MVC-arkitektur i Java

MVC-arkitektur gir mange fordeler for en programmerer når de utvikler applikasjoner, som inkluderer:

  • Flere utviklere kan jobbe med de tre lagene (modell, visning og kontroller) samtidig
  • Tilbud forbedret skalerbarhet , som supplerer applikasjonens evne til å vokse
  • Siden komponenter har liten avhengighet av hverandre, er de enkle å vedlikeholde
  • En modell kan brukes på nytt med flere visninger som gir gjenbrukbar kode
  • Adopsjon av MVC gjør en applikasjon mer uttrykksfull og lett å forstå
  • Det er enkelt å utvide og teste applikasjonen

Nå vet du hvorfor MVC er den mest populære i nettprogrammeringsverdenen. Men hvis du fortsatt sliter med å få hodet rundt MVC-konseptet, ikke bekymre deg. Vi vil grave dypt inn i hvert av disse lagene og lære formålet deres ved hjelp av en .

Implementering av MVC ved bruk av Java

For å implementere en webapplikasjon basert på MVC-mønster, vil vi lage

  • Kursklasse , som fungerer som modellag
  • CourseView-klasse , som definerer presentasjonslaget ( visningslag )
  • CourseContoller Class , som fungerer som en kontrolleren

La oss nå utforske disse lagene ett etter ett.

funksjon overbelastning i c ++ eksempel

Modellaget

I MVC-mønsteret er modell er datalaget som definerer forretningslogikken til systemet og også representerer tilstanden til applikasjonen.Modellen gjenstander hente og lagre tilstanden til modellen i en database. Gjennom dette laget bruker vi regler på data, som til slutt representerer konseptene applikasjonen vår styrer. La oss nå lage en modell ved hjelp av Kursklasse.

pakke MyPackage offentlig klasse Kurs {privat streng Kursnavn privat streng KursId privat streng KursKategori offentlig streng getId () {retur KursId} offentlig ugyldig setId (streng-id) {dette.CourseId = id} offentlig String getName () {retur Kursnavn} offentlig tom sett (String name) {this.CourseName = name} public String getCategory () {return CourseCategory} public void setCategory (Strengkategori) {this.CourseCategory = category}}

Koden er lett å forstå og forklarer seg selv. Den består av funksjoner for å få / sette kursdetaljer.

Utsiktslaget

Dette laget av MVC-mønsteret representerer utdataene fra applikasjonen eller brukergrensesnittet. Den viser dataene som er hentet fra modellaget av kontrolleren og presenterer dataene for brukeren når det blir bedt om det. Jegt mottar all informasjonen den trenger fra kontrolleren, og den trenger ikke å samhandle med virksomhetslaget direkte.La oss lage en visning ved hjelp av CourseView-klasse.

pakke MyPackage public class CourseView {public void printCourseDetails (String CourseName, String CourseId, String CourseCategory) {System.out.println ('Course Details:') System.out.println ('Name:' + CourseName) System.out.println ('Course ID:' + CourseId) System.out.println ('Course Category:' + CourseCategory)}}

Denne koden erbare for å skrive ut verdiene til konsollen. Neste gang har vi kontrolleren av webapplikasjonen.

Kontrollerlaget

Kontrolleren er som et grensesnitt mellom modell og visning. Den mottar brukerforespørslene fra visningslaget og behandler dem, inkludert de nødvendige valideringene. Forespørslene blir deretter sendt til modell for databehandling. Når de er behandlet, sendes dataene igjen til kontrolleren og vises deretter på visningen.La oss lage CourseContoller Class som fungerer som en kontroller.

pakke MyPackage offentlig klasse CourseController {private Course model private CourseView view public CourseController (Course model, CourseView view) {this.model = model this.view = view} public void setCourseName (String name) {model.setName (name)} public String getCourseName () {return model.getName ()} public void setCourseId (String id) {model.setId (id)} public String getCourseId () {return model.getId ()} public void setCourseCategory (Strengkategori) {model.setCategory (category)} public String getCourseCategory () {return model.getCategory ()} public void updateView () {view.printCourseDetails (model.getName (), model.getId (), model.getCategory ())}}

Et kort blikk på koden vil fortelle oss at denne kontrollerklassen bare er ansvarlig for å ringe modellen for å få / stille inn dataene og oppdatere visningen basert på det. La oss nåta en titt på hvordan alle disse er bundet sammen.

Hoved Java-klasse

La oss kalle denne klassen 'MVCPatternDemo.java'. Sjekk koden nedenfor.

pakke MyPackage offentlig klasse MVCPatternDemo {public static void main (String [] args) {// hent studentoppføring basert på hans roll nr fra databasen Kursmodell = retriveCourseFromDatabase () // Lag en visning: for å skrive kursdetaljer på konsollen = ny CourseView () CourseController-kontroller = ny CourseController (modell, vis) controller.updateView () // oppdater modellmodell data controller.setCourseName ('Python') System.out.println ('nEtter oppdatering er kursdetaljer som følger') controller.updateView ()} privat statisk Course retriveCourseFromDatabase () {Course course = new Course () course.setName ('Java') course.setId ('01 ') course.setCategory (' Programming ') retur kurs}}

Ovennevnte klassehenter kursdataene fra bruker hvilken bruker som angir verdisettet. Det skyver deretter disse verdiene inn i kursmodellen. Deretter initialiserer den visningen vi hadde opprettet tidligere i artikkelen.Videre påkaller det også CourseController klasse og binder den til Kurs klasse og CourseView klasse. De updateView () Metoden som er en del av kontrolleren, oppdaterer deretter kursdetaljene på konsollen. Sjekk utdataene nedenfor.

Produksjon

Kursdetaljer: Navn: Java Kurs-ID: 01 Kurskategori: Programmering Etter oppdatering er kursdetaljer som følger Kursdetaljer: Navn: Python Kurs-ID: 01 Kurskategori: Programmering

MVC-arkitekturengir et helt nytt nivå av modularitet til koden din, noe som gjør den mye mer lesbar og vedlikeholdbar. Dette fører oss til slutten av denne artikkelen.Håper du er tydelig med alt som har blitt delt med deg.

Forsikre deg om at du trener så mye som mulig og tilbakestiller opplevelsen.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, vi kommer med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet til denne 'MVC Architecture in Java' artikkel, og vi kommer tilbake til deg så snart som mulig.