logo

MVC архитектура в Java

Model-View-Controller (MVC) е добре известен дизайн модел в областта на уеб разработката. Това е начин да организираме нашия код. Той уточнява, че една програма или приложение трябва да се състои от модел на данни, информация за представяне и контролна информация. Моделът MVC изисква всички тези компоненти да бъдат разделени като различни обекти.

В този раздел ще обсъдим MVC архитектурата в Java, заедно с нейните предимства и недостатъци и примери за разбиране на изпълнението на MVC в Java.

Какво представлява MVC архитектурата в Java?

Дизайнът на модела, базиран на MVC архитектурата, следва модела на MVC дизайн. Логиката на приложението е отделена от потребителския интерфейс при проектирането на софтуера с помощта на дизайн на модел.

списък за пропускане

Архитектурата на модела MVC се състои от три слоя:

    Модел:Той представлява бизнес слоя на приложението. Това е обект за пренасяне на данните, който също може да съдържа логиката за актуализиране на контролера, ако данните се променят.Преглед:Той представлява презентационния слой на приложението. Използва се за визуализиране на данните, които моделът съдържа.Контролер:Работи както на модела, така и на изгледа. Използва се за управление на потока на приложението, т.е. потока от данни в моделния обект и за актуализиране на изгледа при всяка промяна на данните.

В Java програмирането моделът съдържа простото Java класове , изгледът, използван за показване на данните, а контролерът съдържа сервлети . Благодарение на това разделяне потребителските заявки се обработват, както следва:

MVC архитектура в Java
  1. Клиент (браузър) изпраща заявка до контролера от страната на сървъра за страница.
  2. След това контролерът извиква модела. Той събира исканите данни.
  3. След това контролерът прехвърля извлечените данни към слоя изглед.
  4. Сега резултатът се изпраща обратно към браузъра (клиента) от изгледа.

Предимства на MVC архитектурата

Предимствата на MVC архитектурата са следните:

  • MVC има функцията за мащабируемост, която от своя страна помага за растежа на приложението.
  • Компонентите са лесни за поддръжка, защото има по-малка зависимост.
  • Един модел може да се използва повторно от множество изгледи, което осигурява повторна употреба на кода.
  • Разработчиците могат да работят с трите слоя (модел, изглед и контролер) едновременно.
  • Използвайки MVC, приложението става по-разбираемо.
  • Използвайки MVC, всеки слой се поддържа отделно, поради което не е необходимо да се занимаваме с масивен код.
  • Разширяването и тестването на приложението е по-лесно.

Внедряване на MVC с помощта на Java

За да внедрим MVC модел в Java, от нас се изисква да създадем следните три класа.

    Клас служители, ще действа като моделен слойКлас EmployeeView, ще действа като слой за изгледEmployeeContoller Клас, ще действа като контролен слой

MVC архитектурни слоеве

Слой модел

Моделът в шаблона за проектиране на MVC действа като слой данни за приложението. Той представлява бизнес логиката за приложение, а също и състоянието на приложението. Моделният обект извлича и съхранява състоянието на модела в базата данни. Използвайки моделния слой, правилата се прилагат към данните, които представляват концепциите на приложението.

Нека разгледаме следния кодов фрагмент, който създава, което също е първата стъпка за прилагане на MVC модел.

Служител.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; } } 

Горният код просто се състои от getter и setter методи към класа Employee.

Преглед на слоя

Както показва името, изгледът представлява визуализацията на данните, получени от модела. Слоят на изгледа се състои от изход на приложение или потребителски интерфейс. Той изпраща исканите данни до клиента, които се извличат от моделния слой от контролера.

Нека вземем пример, при който създаваме изглед с помощта на класа 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); } } 

Контролен слой

Слоят на контролера получава потребителските заявки от слоя изглед и ги обработва с необходимите валидации. Той действа като интерфейс между модел и изглед. След това заявките се изпращат към модела за обработка на данни. След като бъдат обработени, данните се изпращат обратно към контролера и след това се показват в изгледа.

Нека разгледаме следния кодов фрагмент, който създава контролера с помощта на класа 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 файл

Следващият пример показва основния файл за внедряване на MVC архитектурата. Тук използваме класа 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 class извлича данните за служителите от метода, където сме въвели стойностите. След това вкарва тези стойности в модела. След това инициализира изгледа (EmployeeView.java). Когато изгледът се инициализира, контролерът (EmployeeController.java) се извиква и го свързва с клас Employee и клас EmployeeView. Най-накрая методът updateView() (методът на контролера) актуализира данните за служителите, които да бъдат отпечатани на конзолата.

Изход:

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

По този начин научихме за MVC архитектурата, значението на всеки слой и неговата реализация в Java.