У меня есть несколько вопросов при разработке архитектуры для проекта вокруг MVC. (Это проект C ++ / Marmalade SDK, я не использую какой-либо конкретный MVC-фреймворк, я его создаю.)
В нескольких статьях (например, в оригинальной статье Стива Бурбека ) я продолжаю читать концепцию «Триада MVC», которая поражает меня, так как я воспринял эту концепцию довольно буквально. Когда я прочитал его, в первый раз выглядело, как будто приложение построено на единицах «триады MVC» - по одному для каждого элемента пользовательского интерфейса, который я предположил, - но я нахожу это довольно негибким, и я думаю, что MVC не предназначен для использования. Затем, продолжая исследование этой проблемы, я обнаружил несколько примеров тесной связи контроллера и представления, а именно отношения 1-к-1 - TextEditView имеет TextEditController.
Но когда я возвращаюсь к своему проекту, я обнаружил, что было бы полезно иметь один контроллер (с помощью «логической единицы», такой как AddElementController) и несколько представлений для этого конкретного контроллера.
Я четко думаю о чем-то вроде AddElementController, который должен иметь своего рода интерфейс с вкладками. Должен ли я иметь AddElementController, который имеет AddElementTabView и несколько AddImageView, AddSoundView и т. Д. Для вкладок? Или у меня должен быть отдельный «субконтроллер» для каждого вида вкладок?
В целом, и в отношении паттерна MVC (а не специфического понимания / реализации этого фреймворка X), правильно ли иметь несколько представлений для контроллера, или у каждого представления должен быть свой конкретный контроллер?
Кроме того, правильно ли хранить некоторую информацию о состоянии на контроллере или она должна быть без сохранения состояния (это означает, что состояние должно быть помещено в некоторую модель состояния, не относящуюся к домену)?
Спасибо всем заранее.