logo

Architektura MVC v Javě

Model-View-Controller (MVC) je dobře známý návrhový vzor v oblasti vývoje webu. Je to způsob, jak organizovat náš kód. Specifikuje, že program nebo aplikace se musí skládat z datového modelu, prezentačních informací a řídicích informací. Vzor MVC potřebuje, aby byly všechny tyto komponenty odděleny jako různé objekty.

V této části probereme architekturu MVC v Javě spolu s jejími výhodami a nevýhodami a příklady pro pochopení implementace MVC v Javě.

Co je architektura MVC v Javě?

Návrhy modelů založené na architektuře MVC se řídí návrhovým vzorem MVC. Aplikační logika je při navrhování softwaru pomocí modelových návrhů oddělena od uživatelského rozhraní.

hashtable versus hashmap

Architektura vzoru MVC se skládá ze tří vrstev:

    Modelka:Představuje obchodní vrstvu aplikace. Je to objekt pro přenášení dat, který může také obsahovat logiku pro aktualizaci kontroléru, pokud se data změní.Pohled:Představuje prezentační vrstvu aplikace. Slouží k vizualizaci dat, která model obsahuje.Ovladač:Funguje to na modelu i pohledu. Slouží ke správě toku aplikací, tedy toku dat v objektu modelu a k aktualizaci pohledu při každé změně dat.

V programování Java obsahuje Model jednoduchý třídy Java , pohled používaný k zobrazení dat a ovladač obsahuje servlety . Kvůli tomuto oddělení jsou požadavky uživatelů zpracovávány následovně:

Architektura MVC v Javě
  1. Klient (prohlížeč) odešle řadiči na straně serveru požadavek na stránku.
  2. Ovladač pak zavolá model. Shromažďuje požadovaná data.
  3. Poté ovladač přenese získaná data do vrstvy zobrazení.
  4. Nyní je výsledek zaslán zpět do prohlížeče (klienta) pohledem.

Výhody architektury MVC

Výhody architektury MVC jsou následující:

  • MVC má vlastnost škálovatelnosti, která zase napomáhá růstu aplikací.
  • Komponenty se snadno udržují, protože jsou méně závislé.
  • Model může být znovu použit více pohledy, které poskytují opětovnou použitelnost kódu.
  • Vývojáři mohou pracovat se třemi vrstvami (Model, View a Controller) současně.
  • Pomocí MVC se aplikace stává srozumitelnější.
  • Pomocí MVC je každá vrstva udržována samostatně, takže nepotřebujeme řešit masivní kód.
  • Rozšíření a testování aplikace je jednodušší.

Implementace MVC pomocí Javy

Pro implementaci vzoru MVC v Javě jsme povinni vytvořit následující tři třídy.

    Třída zaměstnanců, bude fungovat jako modelová vrstvaTřída EmployeeView, bude fungovat jako vrstva pohleduTřída EmployeeContoller, bude působit jako vrstva ovladače

Vrstvy architektury MVC

Modelová vrstva

Model v návrhovém vzoru MVC funguje jako datová vrstva pro aplikaci. Představuje obchodní logiku aplikace a také stav aplikace. Objekt modelu načte a uloží stav modelu do databáze. Pomocí modelové vrstvy jsou pravidla aplikována na data, která představují koncepty aplikace.

Podívejme se na následující úryvek kódu, který vytváří a který je také prvním krokem k implementaci vzoru MVC.

Employee.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; } } 

Výše uvedený kód se jednoduše skládá z metod getter a setter do třídy Employee.

Zobrazit vrstvu

Jak název napovídá, pohled představuje vizualizaci dat přijatých z modelu. Pohledová vrstva se skládá z výstupu aplikace nebo uživatelského rozhraní. Odešle klientovi požadovaná data, která jsou načtena z modelové vrstvy řadičem.

Vezměme si příklad, kdy vytvoříme pohled pomocí třídy 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); } } 

Vrstva ovladače

Vrstva řadiče získává požadavky uživatelů z vrstvy zobrazení a zpracovává je s nezbytnými ověřeními. Funguje jako rozhraní mezi modelem a pohledem. Požadavky jsou poté odeslány do modelu pro zpracování dat. Jakmile jsou zpracována, data jsou odeslána zpět do kontroléru a poté zobrazena na zobrazení.

Podívejme se na následující fragment kódu, který vytváří řadič pomocí třídy 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()); } } 

Soubor Java hlavní třídy

Následující příklad zobrazuje hlavní soubor pro implementaci architektury MVC. Zde používáme třídu 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 třída načte data zaměstnance z metody, do které jsme zadali hodnoty. Poté tyto hodnoty vloží do modelu. Poté inicializuje pohled (EmployeeView.java). Když je pohled inicializován, je vyvolán řadič (EmployeeController.java) a naváže ho na třídu Employee a EmployeeView. Nakonec metoda updateView() (metoda ovladače) aktualizuje údaje o zaměstnanci, které se mají vytisknout na konzoli.

Výstup:

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

Tímto způsobem jsme se dozvěděli o architektuře MVC, významu každé vrstvy a její implementaci v Javě.