Я думаю, что я понимаю основные понятия MVC: модель содержит данные и поведение приложения, представление отвечает за отображение его пользователю, а контроллер выполняет вход пользователя. Я не уверен, что это именно то, что происходит в контроллере.
Давайте скажем, например, у меня довольно простое приложение (я специально думаю о Java, но я полагаю, что одни и те же принципы применяются в другом месте). Я организовываю свой код в 3 пакета под названием app.model
, app.view
и app.controller
.
В пакете app.model
у меня есть несколько классов, которые отражают фактическое поведение приложения. Эти extends Observable
и используйте setChanged()
и notifyObservers()
, чтобы инициировать просмотр, когда это необходимо.
Пакет app.view
имеет класс (или несколько классов для разных типов отображения), который использует компоненты javax.swing
для обработки отображения. Некоторые из этих компонентов должны возвращаться в Модель. Если я правильно понимаю, представление не должно иметь ничего общего с обратной связью - это должно решаться контроллером.
Итак, что я на самом деле положил в контроллер? Я помещаю public void actionPerformed(ActionEvent e)
в представление только с вызовом метода в контроллере? Если да, то должны ли быть какие-либо проверки и т.д. В контроллере? Если да, то как мне возвращать сообщения об ошибках обратно в представление - должно ли оно снова пройти через модель или контроллер должен просто отправить его обратно в режим просмотра?
Если проверка выполняется в представлении, что я помещаю в контроллер?
Извините за длинный вопрос, я просто хотел документировать свое понимание процесса и, надеюсь, кто-то может прояснить эту проблему для меня!