Model-View-Controller (MVC) je dobre známy dizajnový vzor v oblasti vývoja webu. Je to spôsob, ako organizovať náš kód. Špecifikuje, že program alebo aplikácia pozostáva z dátového modelu, prezentačných informácií a riadiacich informácií. Vzor MVC potrebuje, aby boli všetky tieto komponenty oddelené ako rôzne objekty.
V tejto časti budeme diskutovať o architektúre MVC v Jave spolu s jej výhodami a nevýhodami a príkladmi na pochopenie implementácie MVC v Jave.
Čo je architektúra MVC v jazyku Java?
Návrhy modelov založené na architektúre MVC sa riadia návrhovým vzorom MVC. Aplikačná logika je oddelená od používateľského rozhrania pri navrhovaní softvéru pomocou návrhov modelov.
typy počítačov
Architektúra vzoru MVC pozostáva z troch vrstiev:
V programovaní Java model obsahuje jednoduché Java triedy , zobrazenie používané na zobrazenie údajov a ovládač obsahuje servlety . V dôsledku tohto oddelenia sa požiadavky používateľov spracúvajú nasledovne:
- Klient (prehliadač) odošle požiadavku do kontroléra na strane servera na stránku.
- Ovládač potom zavolá model. Zhromažďuje požadované údaje.
- Potom ovládač prenesie získané údaje do vrstvy zobrazenia.
- Teraz je výsledok odoslaný späť do prehliadača (klienta) zobrazením.
Výhody architektúry MVC
Výhody architektúry MVC sú nasledovné:
- MVC má vlastnosť škálovateľnosti, ktorá zase pomáha rastu aplikácií.
- Komponenty sa ľahko udržiavajú, pretože je menšia závislosť.
- Model môže byť opätovne použitý viacerými zobrazeniami, ktoré poskytujú opätovnú použiteľnosť kódu.
- Vývojári môžu súčasne pracovať s tromi vrstvami (Model, View a Controller).
- Pomocou MVC sa aplikácia stáva zrozumiteľnejšou.
- Pomocou MVC je každá vrstva udržiavaná oddelene, preto nepotrebujeme riešiť masívny kód.
- Rozšírenie a testovanie aplikácie je jednoduchšie.
Implementácia MVC pomocou Java
Na implementáciu vzoru MVC v jazyku Java sme povinní vytvoriť nasledujúce tri triedy.
Vrstvy architektúry MVC
Modelová vrstva
Model v návrhovom vzore MVC funguje ako dátová vrstva pre aplikáciu. Predstavuje obchodnú logiku aplikácie a tiež stav aplikácie. Objekt modelu načíta a uloží stav modelu do databázy. Pomocou modelovej vrstvy sa pravidlá aplikujú na údaje, ktoré predstavujú koncepty aplikácie.
Pozrime sa na nasledujúci útržok kódu, ktorý vytvára kód, ktorý je tiež prvým krokom k implementácii vzoru MVC.
Zamestnanec.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; } }
Vyššie uvedený kód jednoducho pozostáva z metód getter a setter do triedy Zamestnanec.
Zobraziť vrstvu
Ako naznačuje názov, zobrazenie predstavuje vizualizáciu údajov získaných z modelu. Vrstva zobrazenia pozostáva z výstupu aplikácie alebo používateľského rozhrania. Klientovi odošle požadované dáta, ktoré radič získa z modelovej vrstvy.
Uveďme si príklad, keď vytvoríme pohľad pomocou triedy 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 ovládača
Vrstva radiča získava požiadavky používateľov z vrstvy zobrazenia a spracováva ich s potrebnými overeniami. Funguje ako rozhranie medzi modelom a zobrazením. Požiadavky sú potom odoslané do modelu na spracovanie údajov. Po ich spracovaní sa údaje odošlú späť do kontrolóra a potom sa zobrazia v zobrazení.
Pozrime sa na nasledujúci útržok kódu, ktorý vytvára ovládač pomocou triedy 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()); } }
Súbor Java hlavnej triedy
Nasledujúci príklad zobrazuje hlavný súbor na implementáciu architektúry MVC. Tu používame triedu 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 trieda načíta údaje o zamestnancovi z metódy, do ktorej sme zadali hodnoty. Potom tieto hodnoty tlačí do modelu. Potom inicializuje pohľad (EmployeeView.java). Po inicializácii zobrazenia sa vyvolá Controller (EmployeeController.java) a naviaže ho na triedu Employee a EmployeeView. Nakoniec metóda updateView() (metóda ovládača) aktualizuje údaje o zamestnancovi, ktoré sa majú vytlačiť na konzole.
Výkon:
Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce
Týmto spôsobom sme sa dozvedeli o architektúre MVC, význame každej vrstvy a jej implementácii v Jave.