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.

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

Наведений вище код просто складається з методів 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.