Если вам нужна дополнительная информация, пожалуйста, дайте мне знать или обратитесь к последним строкам этого вопроса. Я уже много читал и чувствую, что превращаю что-то простое во что-то сложное, и я все еще застреваю здесь и там, поэтому, возможно, вы можете помочь мне в этих очень конкретных моментах.
Я использую Netbeans IDE 7 и JDK 7 и никаких фреймворков. Первое окно — это JFrame, а все остальные окна — это JDialogs с modal=true.
Вопросы:
Как мне правильно реализовать шаблон MVC со свингом? Из представленных ниже идей какой из них лучше: (А) или (Б)? Или, может быть, другой... Почему он лучше?
(А) Основное:
Модель MyModel
Представление MyView (модель)
MyView:
MyController(это, модель)
(Б)
Основное:
Модель MyModel
Мой вид
Контроллер MyController (представление, модель)
Когда я нажимаю кнопку jbutton1 в MainFrame, мне нужно открыть SettingsFrame для редактирования настроек. где я должен создать экземпляр представления, модели и контроллера SettingsFrame? В контроллере мейнфрейма?
С точки зрения организации и реализации MVC, как я должен обращаться с более специфическими функциями, которым (очевидно) не хватает одной или двух «ветвей» MVC (будь то Модель, Представление или Контроллер)? Должен ли я создавать для них пустые классы?
а. Реализация TrayIcon
б.Класс подключения URL (HttpsUrlConnection, который будет обновлять данные в основном jframe, а также загружать/загружать файлы)
в. Монитор каталогов (который будет обновлять данные в основном jframe, а также использовать URL-адрес для загрузки файла)
д. Моя собственная реализация TableModel
е. json
Как правильно сохранить и использовать объект с настройками во всем приложении? Мне понадобится эта информация в разных местах (представления, модели, контроллеры), но она может быть изменена пользователем во время выполнения). Это хорошая идея сделать эту модель синглтоном?
Что делать, если:
a. Представлению нужны данные из модели?
Что я делаю: использую ссылку на модель, которую я храню в представлении.
б. Представлению нужны данные от контроллера?
Что я делаю: использую ссылку на контроллер, которую я храню в представлении.
в. Модели нужны данные от контроллера?
Все еще не произошло, но я понятия не имею, как сделать правильно
д. Модели нужны данные из представления?
Что я делаю: рву все волосы с головы...
е. Контроллеру нужны данные из представления?
Что я делаю: использую ссылку на представление, которое я храню в контроллере.
ф. Контроллеру нужны данные из модели?
Что я делаю: использую ссылку на модель, которую храню в контроллере.
грамм. Одному из FooModel, FooView или FooController нужны данные из одного из BarModel, BarView или BarController?
Чем занимаюсь: думаю прыгнуть с самого высокого здания...
Любые подсказки о том, как узнать, правильно ли я реализовал MVC? Должен ли я обрабатывать массивные данные в модели или контроллере?
Я также использую DAO, вот что я делаю: моя модель имеет метод
ArrayList MyModel load()
, который создает экземпляр DAO и возвращает список моделей ArrayList, возвращенный DAO, а затем иногда я обрабатываю этот ArrayList of Models в модели, а иногда разрешаю контроллеру обрабатывать его. Это хорошая практика или есть лучший способ? Под процессом я подразумеваю: перебирать ArrayList и получать данные из моделей.
У меня есть диалоговое окно PasswordCheck для ограничения доступа к некоторым представлениям. Как я могу повторно использовать его с точки зрения MVC, чтобы я мог использовать один и тот же диалог PasswordCheck для разрешения/ограничения доступа к различным представлениям, не создавая беспорядка в коде?
Есть еще советы, подсказки, идеи, предложения?
Контекст: Мне нужно разработать программное обеспечение Java Swing MVC в короткие сроки, хотя по умолчанию я не являюсь разработчиком Java и не так привык реализовывать шаблон MVC, особенно в Java (я понял идею, но иногда мне не хватает знаний для реализации отношений между классами). Приложения в основном представляют собой монитор для локальных/онлайн-файлов с JTable в основном фрейме для отображения этих данных. Я использую новый API WatchService для отслеживания локальных файлов и сохранения их информации в базе данных h2 с помощью DAO, а затем перезагружаю эти данные в jtable основного фрейма. Я также должен уведомлять пользователя о новых файлах (для чего я использую TrayIcon). Для онлайн-мониторинга/загрузки/выгрузки файлов я использую HttpsUrlConnection и json.Это также может разрешить настройку параметров.
Заранее благодарим за потраченное время и помощь.