В области веб-разработки модель-представление-контроллер является сегодня одним из самых обсуждаемых шаблонов проектирования в мире веб-программирования. Первоначально архитектура MVC была включена в две основные среды веб-разработки — Struts и Ruby on Rails. В этой статье давайте немного рассмотрим архитектуру MVC в Java.
Темы, которые будут затронуты в этой статье, следующие:
- Что такое архитектура MVC в Java?
- Преимущества архитектуры MVC
- Демонстрация: реализация MVC с использованием Java
Прежде чем мы на самом деле перейдем к техническим особенностям архитектуры MVC, вам необходимо знать некоторые концепции.
- Шаблон проектирования в разработке программного обеспечения – это метод решения часто возникающих проблем при разработке программного обеспечения.
- Модель проектированияуказывает, какой тип архитектуры вы используете для решения проблемы или разработки модели.
- Существует дватипа проектных моделей: Архитектура модели 1, Архитектура модели 2(MVC).
Что такое архитектура MVC в Java?
Проекты моделей, основанные на архитектуре MVC, следуют шаблону проектирования MVC и отделяют логику приложения от пользовательского интерфейса при разработке программного обеспечения. Как следует из названия, шаблон MVC имеет три уровня:
- Модель — представляет бизнес-уровень приложения.
- View — определяет представление приложения.
- Контроллер — управляет потоком приложения.
В контексте программирования на Java модель состоит из простых классов Java, представление отображает данные, а контроллер состоит из сервлетов. Это разделение приводит к тому, что запросы пользователей обрабатываются следующим образом:
- Браузер на клиенте отправляет запрос на страницу контроллеру, присутствующему на сервере.
- Контроллер выполняет действие по вызову модели, тем самым извлекая необходимые ему данные в ответ на запрос.
- Затем контроллер передает полученные данные в представление.
- Представление визуализируется и отправляется обратно клиенту для отображения в браузере.
Разделение программного приложения на эти три отдельных компонента является хорошей идеей по ряду причин. Давайте посмотрим, что это такое.
Преимущества архитектуры 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.
5. Строка Java
6. Массив Java
8. Java-потоки
12. Учебник по Java
14. Java-программы
24. Аннотации в Java
26. Деревья в Java
30. 55 самых популярных вопросов на собеседовании по сервлетам
36. 50 главных вопросов на собеседовании по коллекциям Java, которые вам нужно знать
40. Главные вопросы и ответы на собеседованиях по MVC, которые вам нужно знать
42. Тупик в Java
Первоначально опубликовано на https://www.edureka.co 2 августа 2019 г.