Model-View-Controller (MVC) on hyvin tunnettu suunnittelumalli verkkokehityksen alalla. Se on tapa järjestää koodimme. Siinä määritellään, että ohjelman tai sovelluksen tulee koostua tietomallista, esitystiedoista ja ohjaustiedoista. MVC-kuvio tarvitsee kaikkien näiden komponenttien erottamisen eri objekteiksi.
Tässä osiossa käsittelemme MVC-arkkitehtuuria Javassa, sen etuja ja haittoja sekä esimerkkejä MVC:n toteutuksen ymmärtämiseksi Javassa.
Mikä on MVC-arkkitehtuuri Javassa?
MVC-arkkitehtuuriin perustuvat mallisuunnitelmat noudattavat MVC-suunnittelumallia. Ohjelmistoa suunniteltaessa mallisuunnitelmien avulla sovelluslogiikka erotetaan käyttöliittymästä.
java esimerkkiohjelmat
MVC-kuvioarkkitehtuuri koostuu kolmesta kerroksesta:
Java-ohjelmoinnissa malli sisältää yksinkertaisen Java luokat , Näkymä, jota käytetään tietojen näyttämiseen, ja Ohjain sisältää servletit . Tästä erottelusta johtuen käyttäjien pyynnöt käsitellään seuraavasti:
- Asiakas (selain) lähettää sivua koskevan pyynnön palvelinpuolen ohjaimelle.
- Ohjain kutsuu sitten mallia. Se kerää pyydetyt tiedot.
- Sitten ohjain siirtää haetut tiedot näkymäkerrokseen.
- Nyt näkymä lähettää tuloksen takaisin selaimeen (asiakkaalle).
MVC-arkkitehtuurin edut
MVC-arkkitehtuurin edut ovat seuraavat:
- MVC:llä on skaalautuvuusominaisuus, joka puolestaan auttaa sovellusten kasvua.
- Komponentit on helppo huoltaa, koska ne ovat vähemmän riippuvaisia.
- Mallia voidaan käyttää uudelleen useissa näkymissä, mikä tarjoaa koodin uudelleenkäytettävyyden.
- Kehittäjät voivat työskennellä kolmen kerroksen (malli, näkymä ja ohjain) kanssa samanaikaisesti.
- MVC:tä käyttämällä sovellus tulee ymmärrettävämmäksi.
- MVC:tä käyttämällä jokaista kerrosta ylläpidetään erikseen, joten meidän ei tarvitse käsitellä massiivista koodia.
- Sovelluksen laajentaminen ja testaus on helpompaa.
MVC:n käyttöönotto Javalla
MVC-mallin toteuttamiseksi Javassa meidän on luotava seuraavat kolme luokkaa.
MVC-arkkitehtuurikerrokset
Mallin kerros
MVC-suunnittelumallin malli toimii sovelluksen tietokerroksena. Se edustaa sovelluksen liiketoimintalogiikkaa ja myös sovelluksen tilaa. Malliobjekti hakee ja tallentaa mallin tilan tietokantaan. Mallikerroksen avulla sääntöjä sovelletaan tietoihin, jotka edustavat sovelluskäsitteitä.
Tarkastellaan seuraavaa koodinpätkää, joka luo koodin, joka on myös ensimmäinen askel MVC-mallin toteuttamisessa.
Työntekijä.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; } }
Yllä oleva koodi koostuu yksinkertaisesti getter- ja setter-menetelmistä Employee-luokkaan.
Näytä taso
Kuten nimestä käy ilmi, näkymä edustaa mallista vastaanotettujen tietojen visualisointia. Näkymäkerros koostuu sovelluksen tai käyttöliittymän tulosteesta. Se lähettää asiakkaalle pyydetyt tiedot, jotka ohjain hakee mallikerroksesta.
Otetaan esimerkki, jossa luomme näkymän EmployeeView-luokan avulla.
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); } }
Ohjainkerros
Ohjainkerros saa käyttäjien pyynnöt näkymätasolta ja käsittelee ne tarvittavin validoinnein. Se toimii rajapintana mallin ja näkymän välillä. Pyynnöt lähetetään sitten mallille tietojenkäsittelyä varten. Kun ne on käsitelty, tiedot lähetetään takaisin ohjaimelle ja näytetään sitten näkymässä.
Tarkastellaan seuraavaa koodinpätkää, joka luo ohjaimen EmployeeController-luokan avulla.
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()); } }
Pääluokan Java-tiedosto
Seuraava esimerkki näyttää päätiedoston MVC-arkkitehtuurin toteuttamiseksi. Tässä käytämme MVCMain-luokkaa.
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 luokka hakee työntekijätiedot menetelmästä, johon olemme syöttäneet arvot. Sitten se työntää nämä arvot malliin. Sen jälkeen se alustaa näkymän (EmployeeView.java). Kun näkymä alustetaan, ohjain (EmployeeController.java) kutsutaan ja sitoo sen Employee-luokkaan ja EmployeeView-luokkaan. Viimeinkin updateView()-menetelmä (ohjaimen menetelmä) päivittää konsoliin tulostettavat työntekijän tiedot.
Lähtö:
Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce
Tällä tavalla olemme oppineet MVC-arkkitehtuurista, kunkin kerroksen merkityksestä ja sen toteutuksesta Javassa.