Пример JAVA-приложения с использованием MVC В общем, не совсем понимаю как правильно разбить проект на Model, View и Controller. Если бы кто-нибудь накидал простенький пример, был бы очень благодарен. (View пишется с использованием Swing). Самая проблема возникает из-за того, что окон несколько и не совсем понятно как им взаимодействовать. И непонятно что в main пихать.
В общем, такой пример:
При запуске приложения открывается окно. В окне 2 кнопки. По нажатию одной выводится какой-нибудь текст, по нажатию другой — открывается новое окно (старое при этом убивается).
Во втором окне тоже 2 кнопки. Одна выводит текст, другая — выводит старое окно, а новое закрывает.
Как писать — понятно, мне непонятна именно архитектура.

21 Авг 2019 в 07:10
181 +1
0
Ответы
1

Давайте посмотрим, как можно разбить это приложение на Model, View и Controller:

Model (Модель) - отвечает за хранение данных и бизнес-логику приложения. В данном случае у нас нет сложной логики, поэтому модель может быть просто классом, который содержит необходимые данные.

public class Model {
// Здесь можно хранить данные (если они есть) и реализовывать бизнес-логику
}

View (Представление) - отвечает за отображение данных и взаимодействие с пользователем. В данном случае мы будем использовать Swing для создания графического интерфейса.

import javax.swing.*;
public class View {
private JFrame frame;
private JButton button1;
private JButton button2;
public View() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
button1 = new JButton("Button 1");
button2 = new JButton("Button 2");
// Здесь можно добавить слушателей для кнопок
// Например, button1.addActionListener(e -> { ... })
frame.add(button1);
frame.add(button2);
frame.setVisible(true);
}
// Метод для открытия нового окна
public void openNewWindow() {
frame.dispose();
// Создание и отображение нового окна
}
}

Controller (Контроллер) - связывает Model и View, обрабатывает взаимодействие пользователя с приложением, реализует логику работы.

public class Controller {
private Model model;
private View view;
public Controller(Model model, View view) {
this.model = model;
this.view = view;
// Добавляем слушателей для кнопок
view.getButton1().addActionListener(e -> {
// Действия по нажатию кнопки 1
});
view.getButton2().addActionListener(e -> {
view.openNewWindow();
});
}
}

Main (Главный класс приложения) - инициализирует Model, View и Controller и запускает приложение.

public class Main {
public static void main(String[] args) {
Model model = new Model();
View view = new View();
Controller controller = new Controller(model, view);
}
}

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

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 718 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир