В области веб-разработки модель-представление-контроллер является сегодня одним из самых обсуждаемых шаблонов проектирования в мире веб-программирования. Первоначально архитектура MVC была включена в две основные среды веб-разработки — Struts и Ruby on Rails. В этой статье давайте немного рассмотрим архитектуру MVC в Java.

Темы, которые будут затронуты в этой статье, следующие:

  • Что такое архитектура MVC в Java?
  • Преимущества архитектуры MVC
  • Демонстрация: реализация MVC с использованием Java

Прежде чем мы на самом деле перейдем к техническим особенностям архитектуры MVC, вам необходимо знать некоторые концепции.

  • Шаблон проектирования в разработке программного обеспечения – это метод решения часто возникающих проблем при разработке программного обеспечения.
  • Модель проектированияуказывает, какой тип архитектуры вы используете для решения проблемы или разработки модели.
  • Существует дватипа проектных моделей: Архитектура модели 1, Архитектура модели 2(MVC).

Что такое архитектура MVC в Java?

Проекты моделей, основанные на архитектуре MVC, следуют шаблону проектирования MVC и отделяют логику приложения от пользовательского интерфейса при разработке программного обеспечения. Как следует из названия, шаблон MVC имеет три уровня:

  • Модель — представляет бизнес-уровень приложения.
  • View — определяет представление приложения.
  • Контроллер — управляет потоком приложения.

В контексте программирования на Java модель состоит из простых классов Java, представление отображает данные, а контроллер состоит из сервлетов. Это разделение приводит к тому, что запросы пользователей обрабатываются следующим образом:

  1. Браузер на клиенте отправляет запрос на страницу контроллеру, присутствующему на сервере.
  2. Контроллер выполняет действие по вызову модели, тем самым извлекая необходимые ему данные в ответ на запрос.
  3. Затем контроллер передает полученные данные в представление.
  4. Представление визуализируется и отправляется обратно клиенту для отображения в браузере.

Разделение программного приложения на эти три отдельных компонента является хорошей идеей по ряду причин. Давайте посмотрим, что это такое.

Преимущества архитектуры MVC в Java

Архитектура MVC предлагает множество преимуществ для программиста при разработке приложений, в том числе:

  • Несколько разработчиков могут одновременно работать с тремя уровнями (модель, представление и контроллер).
  • Предлагает улучшенную масштабируемость, которая расширяет возможности приложения.
  • Поскольку компоненты мало зависят друг от друга, их легко поддерживать.
  • Модель может быть повторно использована несколькими представлениями, что обеспечивает возможность повторного использования кода.
  • Применение MVC делает приложение более выразительным и простым для понимания.
  • Расширение и тестирование приложения становится проще

Теперь вы знаете, почему MVC является самым популярным шаблоном проектирования в мире веб-программирования. Но если вы все еще пытаетесь понять концепцию MVC, не волнуйтесь. Мы углубимся в каждый из этих слоев и узнаем их назначение с помощью примера программы.

Реализация MVC с использованием Java

Чтобы реализовать веб-приложение на основе шаблона проектирования MVC, мы создадим

  • Класс курса, выступающий в роли слоя модели
  • Класс CourseView, определяющий уровень представления (уровень просмотра)
  • Класс CourseContoller, который действует как контроллер

Теперь давайте рассмотрим эти слои один за другим.

Слой модели

В шаблоне проектирования MVC модель представляет собой уровень данных, который определяет бизнес-логику системы, а также представляет состояние приложения. объекты извлекают и сохраняют состояние модели в базе данных. На этом уровне мы применяем правила к данным, которые в конечном итоге представляют концепции, которыми управляет наше приложение. Теперь давайте создадим модель с помощью класса курса.

package MyPackage;
public class Course {
       private String CourseName;
       private String CourseId;
       private String CourseCategory;
       public String getId() {
       return CourseId;
       }
       public void setId(String id) {
       this.CourseId = id;
       }
      public String getName() {
      return CourseName;
      }
      public void setName(String name) {
      this.CourseName = name;
      }
      public String getCategory() {
      return CourseCategory;
      }
      public void setCategory(String category) {
      this.CourseCategory = category;
      }
      }

Код прост для понимания и не требует пояснений. Он состоит из функций для получения/установки сведений о курсе.

Слой представления

Этот уровень шаблона проектирования MVC представляет выходные данные приложения или пользовательского интерфейса. Он отображает данные, полученные контроллером из уровня модели, и предоставляет данные пользователю по запросу. Он получает всю необходимую информацию от контроллера, и ему не нужно напрямую взаимодействовать с бизнес-уровнем. Давайте создадим представление с помощью класса CourseView.

package MyPackage;
public class CourseView {
       public void printCourseDetails(String CourseName, String CourseId,  String CourseCategory){
       System.out.println("Course Details: ");
       System.out.println("Name: " + CourseName);
       System.out.println("Course ID: " + CourseId);
      System.out.println("Course Category: " + CourseCategory);
     }
    }

Этот код просто выводит значения на консоль. Далее у нас есть контроллер веб-приложения.

Уровень контроллера

Контроллер похож на интерфейс между моделью и представлением. Он получает пользовательские запросы от уровня представления и обрабатывает их, включая необходимые проверки. Затем запросы отправляются в модель для обработки данных. После обработки данные снова отправляются обратно в контроллер, а затем отображаются в представлении. Давайте создадим класс CourseContoller, который действует как контроллер.

package MyPackage;
public class CourseController {
       private Course model;
       private CourseView view;
       public CourseController(Course model, CourseView view){
        this.model = model;
        this.view = view;
       }
       public void setCourseName(String name){
       model.setName(name);
       }
      public String getCourseName(){
      return model.getName();
       }
      public void setCourseId(String id){
      model.setId(id);
       }
      public String getCourseId(){
      return model.getId();
        }
      public void setCourseCategory(String category){
      model.setCategory(category);
       }
     public String getCourseCategory(){
     return model.getCategory();
        }
     public void updateView(){
     view.printCourseDetails(model.getName(), model.getId(),     model.getCategory());
        }
     }

Беглый взгляд на код говорит нам, что этот класс контроллера просто отвечает за вызов модели для получения/установки данных и обновления представления на основе этого. Теперь давайте посмотрим, как все это связано вместе.

Основной класс Java

Назовем этот класс «MVCPatternDemo.java». Проверьте код ниже.

package MyPackage;
public class MVCPatternDemo {
       public static void main(String[] args) {
       //fetch student record based on his roll no from the database
       Course model  = retriveCourseFromDatabase();
       //Create a view : to write course details on console
       CourseView view = new CourseView();
      CourseController controller = new CourseController(model, view);
     controller.updateView();
     //update model data
     controller.setCourseName("Python");
     System.out.println("nAfter updating, Course Details are as follows");
     controller.updateView();
   }
     private static Course retriveCourseFromDatabase(){
     Course course = new Course();
     course.setName("Java");
     course.setId("01");
     course.setCategory("Programming");
     return course;
   }
}

Вышеупомянутый класс извлекает данные курса из Далее, он также вызывает функцию, с помощью которой пользователь вводит набор значений. Затем он помещает эти значения в модель курса. Затем он инициализирует представление, которое мы создали ранее в этой статье. CourseController и связывает его с классом Course и классом CourseView. Затем метод updateView(), являющийся частью контроллера, обновляет сведения о курсе в консоли. Проверьте вывод ниже.

Вывод

Course Details:
Name: Java
Course ID: 01
Course Category: Programming
After updating, Course Details are as follows
Course Details:
Name: Python
Course ID: 01
Course Category: Programming

Архитектура MVC обеспечивает совершенно новый уровень модульности вашего кода, что делает его более читабельным и удобным в сопровождении. Это подводит нас к концу этой статьи. Надеюсь, вы поняли все, чем с вами поделились.

На этом мы подошли к концу нашего блога Advanced Java Tutorial. Я надеюсь, что вы нашли этот блог информативным и полезным для ваших знаний.
Если вы хотите прочитать больше статей о самых популярных технологиях на рынке, таких как искусственный интеллект, DevOps, этический взлом, вы можете обратиться к официальному сайту Edureka. .»

Обратите внимание на другие статьи из этой серии, в которых объясняются различные другие аспекты Java.

1. Объектно-ориентированное программирование

2. Наследование в Java

3. Полиморфизм в Java

4. Абстракция в Java

5. Строка Java

6. Массив Java

7. Коллекции Java

8. Java-потоки

9. Введение в сервлеты Java

10. Учебник по сервлетам и JSP

11. Обработка исключений в Java

12. Учебник по Java

13. Вопросы для собеседования по Java

14. Java-программы

15. Котлин против Java

16. Внедрение зависимостей с использованием Spring Boot

17. Сопоставимо в Java

18. 10 лучших фреймворков Java

19. Java Reflection API

20. 30 лучших шаблонов в Java

21. Основная шпаргалка по Java

22. Программирование сокетов на Java

23. Шпаргалка по ООП по Java

24. Аннотации в Java

25. Проект системы управления библиотекой на Java

26. Деревья в Java

27. Машинное обучение в Java

28. Основные структуры данных и алгоритмы в Java

29. Навыки Java-разработчика

30. 55 самых популярных вопросов на собеседовании по сервлетам

31. Лучшие Java-проекты

32. Шпаргалка по строкам Java

33. Вложенный класс в Java

34. Вопросы и ответы на собеседование по Java Collections

35. Как справиться с взаимоблокировкой в ​​Java?

36. 50 главных вопросов на собеседовании по коллекциям Java, которые вам нужно знать

37. Какова концепция пула строк в Java?

38. В чем разница между C, C++ и Java?

39. Палиндром в Java — Как проверить число или строку?

40. Главные вопросы и ответы на собеседованиях по MVC, которые вам нужно знать

41. 10 лучших приложений языка программирования Java

42. Тупик в Java

43. Квадратный корень в Java

44. Приведение типов в Java

45. Операторы в Java и их типы

46. Деструктор в Java

47. Двоичный поиск в Java

48. Архитектура MVC в Java

49. Вопросы и ответы на собеседовании в Hibernate

Первоначально опубликовано на https://www.edureka.co 2 августа 2019 г.