logo

MVC arhitektura u Javi

Model-View-Controller (MVC) je dobro poznat uzorak dizajna u području web razvoja. To je način da organiziramo naš kod. Određuje da se program ili aplikacija sastoji od podatkovnog modela, prezentacijskih informacija i kontrolnih informacija. MVC obrazac zahtijeva da sve ove komponente budu odvojene kao različiti objekti.

U ovom odjeljku raspravljat ćemo o MVC arhitekturi u Javi, zajedno s njezinim prednostima i nedostacima te primjerima za razumijevanje implementacije MVC-a u Javi.

Što je MVC arhitektura u Javi?

Dizajn modela temeljen na MVC arhitekturi slijedi MVC obrazac dizajna. Logika aplikacije odvojena je od korisničkog sučelja tijekom projektiranja softvera korištenjem dizajna modela.

baza podataka svojstava kiselina

Arhitektura MVC uzorka sastoji se od tri sloja:

    Model:Predstavlja poslovni sloj aplikacije. To je objekt za prijenos podataka koji također može sadržavati logiku za ažuriranje kontrolera ako se podaci promijene.Pogled:Predstavlja prezentacijski sloj aplikacije. Koristi se za vizualizaciju podataka koje model sadrži.Upravljač:Radi i na modelu i na prikazu. Koristi se za upravljanje protokom aplikacije, tj. protokom podataka u objektu modela i za ažuriranje prikaza kad god se podaci promijene.

U Java programiranju, model sadrži jednostavne Java klase , Pogled koji se koristi za prikaz podataka, a Kontrolor sadrži servleti . Zbog ovog odvajanja zahtjevi korisnika obrađuju se na sljedeći način:

MVC arhitektura u Javi
  1. Klijent (preglednik) šalje zahtjev kontroleru na strani poslužitelja za stranicu.
  2. Kontroler tada poziva model. Prikuplja tražene podatke.
  3. Zatim kontroler prenosi dohvaćene podatke u sloj pogleda.
  4. Sada se rezultat šalje natrag pregledniku (klijentu) putem pogleda.

Prednosti MVC arhitekture

Prednosti MVC arhitekture su sljedeće:

  • MVC ima značajku skalabilnosti koja zauzvrat pomaže rastu aplikacije.
  • Komponente se lako održavaju jer je manje ovisnosti.
  • Model se može ponovno upotrijebiti u više pogleda koji omogućuju ponovnu upotrebu koda.
  • Programeri mogu raditi s tri sloja (Model, View i Controller) istovremeno.
  • Korištenjem MVC aplikacija postaje razumljivija.
  • Korištenjem MVC-a, svaki se sloj održava zasebno, stoga ne moramo raditi s ogromnim kodom.
  • Lakše je proširenje i testiranje aplikacije.

Implementacija MVC-a pomoću Jave

Za implementaciju MVC uzorka u Javi, potrebno je kreirati sljedeće tri klase.

    Klasa zaposlenika, djelovat će kao sloj modelaEmployeeView klasa, djelovat će kao sloj prikazaEmployeeContoller Klasadjelovat će kao sloj kontrolera

Slojevi MVC arhitekture

Sloj modela

Model u uzorku dizajna MVC djeluje kao podatkovni sloj za aplikaciju. Predstavlja poslovnu logiku za aplikaciju i također stanje aplikacije. Objekt modela dohvaća i pohranjuje stanje modela u bazu podataka. Pomoću sloja modela pravila se primjenjuju na podatke koji predstavljaju koncepte primjene.

Razmotrimo sljedeći isječak koda koji stvara a koji je također prvi korak za implementaciju MVC uzorka.

Zaposlenik.java

 // class that represents model public class Employee { // declaring the variables private String EmployeeName; private String EmployeeId; private String EmployeeDepartment; // defining getter and setter methods public String getId() { return EmployeeId; } public void setId(String id) { this.EmployeeId = id; } public String getName() { return EmployeeName; } public void setName(String name) { this.EmployeeName = name; } public String getDepartment() { return EmployeeDepartment; } public void setDepartment(String Department) { this.EmployeeDepartment = Department; } } 

Gornji kod jednostavno se sastoji od getter i setter metoda klase Employee.

Prikaz sloja

Kao što naziv prikazuje, pogled predstavlja vizualizaciju podataka primljenih iz modela. Sloj prikaza sastoji se od izlaza aplikacije ili korisničkog sučelja. Šalje tražene podatke klijentu, koje kontroler dohvaća iz sloja modela.

Uzmimo primjer u kojem stvaramo pogled pomoću klase EmployeeView.

EmployeeView.java

 // class which represents the view public class EmployeeView { // method to display the Employee details public void printEmployeeDetails (String EmployeeName, String EmployeeId, String EmployeeDepartment){ System.out.println('Employee Details: '); System.out.println('Name: ' + EmployeeName); System.out.println('Employee ID: ' + EmployeeId); System.out.println('Employee Department: ' + EmployeeDepartment); } } 

Sloj kontrolera

Sloj kontrolera dobiva korisničke zahtjeve od sloja pogleda i obrađuje ih, uz potrebne provjere valjanosti. Djeluje kao sučelje između modela i pogleda. Zahtjevi se zatim šalju modelu za obradu podataka. Nakon što se obrade, podaci se šalju natrag u kontroler i zatim prikazuju na pregledu.

Razmotrimo sljedeći isječak koda koji stvara kontroler pomoću klase EmployeeController.

EmployeeController.java

 // class which represent the controller public class EmployeeController { // declaring the variables model and view private Employee model; private EmployeeView view; // constructor to initialize public EmployeeController(Employee model, EmployeeView view) { this.model = model; this.view = view; } // getter and setter methods public void setEmployeeName(String name){ model.setName(name); } public String getEmployeeName(){ return model.getName(); } public void setEmployeeId(String id){ model.setId(id); } public String getEmployeeId(){ return model.getId(); } public void setEmployeeDepartment(String Department){ model.setDepartment(Department); } public String getEmployeeDepartment(){ return model.getDepartment(); } // method to update view public void updateView() { view.printEmployeeDetails(model.getName(), model.getId(), model.getDepartment()); } } 

Java datoteka glavne klase

Sljedeći primjer prikazuje glavnu datoteku za implementaciju MVC arhitekture. Ovdje koristimo klasu MVCMain.

MVCMain.java

 // main class public class MVCMain { public static void main(String[] args) { // fetching the employee record based on the employee_id from the database Employee model = retriveEmployeeFromDatabase(); // creating a view to write Employee details on console EmployeeView view = new EmployeeView(); EmployeeController controller = new EmployeeController(model, view); controller.updateView(); //updating the model data controller.setEmployeeName('Nirnay'); System.out.println('
 Employee Details after updating: '); controller.updateView(); } private static Employee retriveEmployeeFromDatabase(){ Employee Employee = new Employee(); Employee.setName('Anu'); Employee.setId('11'); Employee.setDepartment('Salesforce'); return Employee; } } 

The MVCMain klasa dohvaća podatke o zaposlenicima iz metode u koju smo unijeli vrijednosti. Zatim gura te vrijednosti u model. Nakon toga inicijalizira prikaz (EmployeeView.java). Kada se pogled inicijalizira, poziva se kontroler (EmployeeController.java) i povezuje ga s klasom Employee i EmployeeView. Konačno, metoda updateView() (metoda kontrolera) ažurira podatke o zaposleniku koji će se ispisati na konzoli.

Izlaz:

 Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce 

Na ovaj način naučili smo o MVC arhitekturi, značaju svakog sloja i njegovoj implementaciji u Javi.