Modelis-View-Controller (MVC) yra gerai žinomas dizaino modelis interneto svetainių kūrimo srityje. Tai būdas tvarkyti mūsų kodą. Jame nurodoma, kad programą arba taikomąją programą turi sudaryti duomenų modelis, pateikimo informacija ir valdymo informacija. MVC modeliui reikia, kad visi šie komponentai būtų atskirti kaip skirtingi objektai.
Šiame skyriuje aptarsime MVC architektūrą Java, jos privalumus ir trūkumus bei pavyzdžius, kad suprastume MVC diegimą Java.
Kas yra „Java“ MVC architektūra?
Modelių projektai, pagrįsti MVC architektūra, atitinka MVC dizaino modelį. Kuriant programinę įrangą naudojant modelių projektus, taikomosios programos logika yra atskirta nuo vartotojo sąsajos.
MVC modelio architektūra susideda iš trijų sluoksnių:
Java programavimo modelyje yra paprasta Java klasės , rodinys, naudojamas duomenims rodyti, o Valdiklyje yra servletai . Dėl šio atskyrimo vartotojų užklausos apdorojamos taip:
- Klientas (naršyklė) siunčia serverio pusėje esančiam valdikliui užklausą dėl puslapio.
- Tada valdiklis iškviečia modelį. Jis renka prašomus duomenis.
- Tada valdiklis perkelia gautus duomenis į peržiūros sluoksnį.
- Dabar rodinys siunčia rezultatą atgal į naršyklę (klientą).
MVC architektūros pranašumai
MVC architektūros pranašumai yra šie:
java int į eilutę
- MVC turi mastelio ypatybę, kuri savo ruožtu padeda plėsti taikymą.
- Komponentus lengva prižiūrėti, nes yra mažesnė priklausomybė.
- Modelį galima pakartotinai naudoti keliuose rodiniuose, todėl kodą galima naudoti pakartotinai.
- Kūrėjai gali dirbti su trimis sluoksniais (modelis, rodinys ir valdiklis) vienu metu.
- Naudojant MVC, programa tampa suprantamesnė.
- Naudojant MVC, kiekvienas sluoksnis prižiūrimas atskirai, todėl mums nereikia dirbti su didžiuliu kodu.
- Programos išplėtimas ir testavimas yra lengvesnis.
MVC diegimas naudojant Java
Norėdami įdiegti MVC modelį Java, turime sukurti šias tris klases.
MVC architektūros sluoksniai
Modelio sluoksnis
MVC dizaino modelio modelis veikia kaip programos duomenų sluoksnis. Tai parodo taikymo verslo logiką ir taikymo būseną. Modelio objektas gauna ir išsaugo modelio būseną duomenų bazėje. Naudojant modelio sluoksnį, taisyklės taikomos duomenims, kurie atspindi taikymo sąvokas.
Panagrinėkime šį kodo fragmentą, kuris sukuria MVC šabloną, kuris taip pat yra pirmasis žingsnis.
Darbuotojas.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; } }
Aukščiau pateiktas kodas tiesiog susideda iš getter ir setter metodų į Darbuotojų klasę.
Žiūrėti sluoksnį
Kaip rodo pavadinimas, rodinys reiškia iš modelio gautų duomenų vizualizaciją. Rodinio sluoksnį sudaro programos arba vartotojo sąsajos išvestis. Jis siunčia klientui prašomus duomenis, kuriuos valdiklis paima iš modelio sluoksnio.
Paimkime pavyzdį, kai sukuriame rodinį naudodami EmployeeView klasę.
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); } }
Valdiklio sluoksnis
Valdiklio sluoksnis gauna vartotojo užklausas iš peržiūros sluoksnio ir apdoroja jas su reikiamais patvirtinimais. Jis veikia kaip sąsaja tarp modelio ir vaizdo. Tada užklausos siunčiamos į modelį duomenų apdorojimui. Kai jie apdorojami, duomenys siunčiami atgal į valdiklį ir rodomi rodinyje.
Panagrinėkime šį kodo fragmentą, kuris sukuria valdiklį naudojant EmployeeController klasę.
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()); } }
Pagrindinės klasės Java failas
Šiame pavyzdyje rodomas pagrindinis failas, skirtas MVC architektūrai įgyvendinti. Čia mes naudojame MVCMain klasę.
MVCMain.java
skirtumas tarp dvejetainio medžio ir dvejetainio paieškos medžio
// 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 klasė gauna darbuotojo duomenis iš metodo, kuriame įvedėme reikšmes. Tada jis stumia tas vertes modelyje. Po to jis inicijuoja rodinį (EmployeeView.java). Kai rodinys inicijuojamas, valdiklis (EmployeeController.java) iškviečiamas ir susieja jį su Darbuotojo klase ir EmployeeView klase. Pagaliau metodas updateView() (valdiklio metodas) atnaujina darbuotojo informaciją, kuri turi būti spausdinama konsolėje.
Išvestis:
Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce
Tokiu būdu mes sužinojome apie MVC architektūrą, kiekvieno sluoksnio reikšmę ir jo įgyvendinimą Java.