Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Заморочки с проектирование MVC


Автор: freshAngel 15.8.2009, 22:15
Привет.
Смысл программы такой:
Пользователь выбирает на форме, определенный период, и получает за этот период информацию из БД.

Я так понимаю используя подход MVC должно получиться примерно так:

Код

class View () {
JPanel panel = new JPanel();
JButton button = new JButton("Жми!");

// Вешаем лисинер
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Controller.getNames();
Controller.refreshTable();
}
});

panel.add(button);
}

class Model() {

// Здесь будут храниться имена пользователей из БД
public static ArrayList name = new ArrayList();
}

Class Controller() {
public static final void getNames() {
// Берем информацию из БД и записываем в name
Model.name.add("Name 1");
Model.name.add("Name 2");
Model.name.add("Name 3");
}

public static final void refreshTable() {
// Обновляем информацию в View...
}

}



Или я неправильно понимаю!?

Автор: revenforv 15.8.2009, 22:59
А к чему такие трудности? Почему в качестве View - не выбрать элемент gui и использовать стандартную mvc заложенную в swing (например). Подробнее на эту тему советую посмотреть Хорстманн и Корнелл "Java 2. Основы. Т1" там есть соответствующий параграф.

По заданному примеру - если не учитывать синтаксические ошибки.. все верно.

Отредактировано спустя пару минут

Ересь сказал ((

В общем, насколько помню, если gui - это view-шка, то адаптер к базе - это контроллер. А база - модель. Если опять ничего не напорол.

Автор: cube 16.8.2009, 03:24
Цитата(freshAngel @ 15.8.2009,  22:15)
Привет.
Смысл программы такой:
Пользователь выбирает на форме, определенный период, и получает за этот период информацию из БД.

Я так понимаю используя подход MVC должно получиться примерно так:

задача ставилась, использовать MVC какого-то опредленного компонента? Или написать свою?
Если пишете свою, то непонятно метод getNames() в контролере, такие штуки вытаскивайте в модель... в контролере получайте модеь и рботайте с ней, если нужны такие данные. Что касается вида, то я так понимаю не дошли еще.

Если ставилась задача использование готового компонента спользующего MVC то возьмите JTable (он подойдет вашей задаче), работайте с его моделью, используйте рендер ячеек. В интеренете много примеров использования JTable.

з.ы. подкючение к базе, отправка запросов в базу это отдельная история, в средах разработки есть инструменты позволяющие использовать компоненты в связке с базами даных, лично я их не использую, но вы можете покапаться, попробовать.

Автор: freshAngel 16.8.2009, 09:08
Уважаемый cube, что значит использовать MVC компонента!?
Да, собираюсь использовать JTable но причем здесь MVC!?
Я думал, что MVC это способ проектирования программы, а компоненты это компоненты. Сами по себе.
Что касается MVC встроенной в SWING не очень понял как она работает...  smile  smile 

Автор: revenforv 16.8.2009, 13:36
Касательно MVC как способа проектирования. Прочитайте здесь: http://chtivo.webhost.ru/articles/mvc.php
Советую для начала поразбираться с MFC Document-View, это поможет понять принципы обоих  разобраться в отличиях.

А насчет внутреннего MVC Swinga. Так суть в том, что элементы Swinga (простейший пример JTextField) организованы по архитектуре MVC: где модель - это String строка, View - элементы графического отобажения текстового поля, а контроллер все что связано с вводом и обработкой событий (например щелчок мыши в поле вызывает функцию вставки символов) (см. Хорстманн и Корнелл "Java 2. Основы. Т1" / "Компоненты пользовательского интерфейса из пакета Swing. Архитектура "модель-представление-контроллер")

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)