Как выглядит модель при разработке GUI при помощи Swing?
Здравствуйте!
Для написанного на Java консольного приложения разрабатываю GUI. Использую Swing. У меня есть пару таблиц на главном окне. В Swing для них уже имееются модели. Как в таком случае должна выглядеть моя собственная модель, которая реализует всю логику и которой нужны данные с моделей таблиц (списков и прочего)? Должна ли моя модель инкапсулировать все используемые модели или есть другие, более лаконичные походы?
Вашей модели должно быть абсолютно безразлично на то кто/что ей будет пользоваться! Так что задачку связки M и V нужно скинуть на C! Ну это как говорится ИМХО, да и самому интересно, как же все таки эту задачу решить. А опытные ребята у которых есть опыт разработки в данном шаблоне АУ вы есть такие?! что-то все молчат, не хотят раскрыть тайну бытия...
@Andrew_Holmes а что у вас в М хранится? Только данные: таблицы, списки и прочее. В swing есть компонент jTable, если вы к примеру ваш класс будете использовать где-то в сервлете, то такого компонента у вас не будет! То есть смысла описывать все возможные случае в модели нет! Представление данных, оставьте для V! Ваша модель возвращает данные - таблицу, все больше она ничего не знает, и знать не должна, да и собственно это уже не ее забота!
M хранит список запросов. По каждому запросу из набора файлов выбираются нужные данные (в файлах хранятся временные ряды, запрос содержит информацию о нужном времени). Логика M заключается в определении файлов для каждого запроса. Также в ней содержится алгоритм обработки файлов.
Получается, что моя модель ничего не возвращает для V, она просто занимается обработкой. Исключения - при чтении файлов информацию об ошибках (неправильный формат данных, ошибка чтения и т.п.) надо выводить в V.
@Andrew_Holmes ну тогда пишите функции (даже страшно предположить что это наверное, может быть С), которые будут срывать данные из GUI и отправлять в М. При переходе от консоли к GUI у вас в идеале М не должен измениться, потому что логика то не поменялась, поменялся только интерфейс - то есть V!