У меня возник вопрос о дизайне:Идиома для интерфейса между монитором и контроллером
Я использую шаблон проектирования MVC. Но View в моем проекте является частью I/O. Это означает, что часть, которая записывает/считывает данные на/с жесткого диска или печатает что-то на экране.
Я упоминал, что «вид» также должен выполнять операции чтения/записи. Наша программа нуждается в некоторых входных данных для выполнения требуемого численного расчета. И поскольку эти входные данные также должны быть доступны для редактирования вручную, мы решили сделать эти входные данные как xml.
Затем контроллер запрашивает «представление» для чтения этих входных данных xml, чтобы модель могла быть заполнена.
Эта ситуация выглядит следующим образом:
Controller
/ \
/ \
/ \
View Model
/ \
/ \
/ \
xml reader xml data
Так что вопрос теперь в том, что перейти от View к контроллеру, когда он читал входные данные?
Если представление создает экземпляр классов из модели и заполняет их входными данными и передает эти экземпляры контроллеру.
Или должен ли он передавать перечисления и поплавки контроллеру, чтобы он мог инициировать необходимые классы и давать поплавки конструкторам?
Какой дизайн лучше, и почему?
Редактировать: Причина, по которой мы думали, что представление должно содержать загрузку входных данных (теперь реализованных как I/O в файл), заключается в том, что в будущей версии кода мы хотим иметь gui, где пользователь может указать, чтобы создать входные данные. И тогда представление получает точные данные (но затем из gui, а не из файла) и должен передать его контроллеру. Итак, теперь это просто самый простой «вид» (как может взаимодействовать пользователь с xml). Это правильное понимание MVC?
Edit 2: Мы реализовали численный метод, как FEM. Таким образом, модель содержит две вещи: с одной стороны, она содержит данные (которые частично могут быть представлены с помощью xml), т. Е. Представление конечных элементов и т. Д. И, с другой стороны, он содержит логику, то есть дифференциальные уравнения с частными производными, параметры которых также должны храниться в xml. Таким образом, входные данные необходимы для логики модели, а не для представления.
Если вам нужна дополнительная информация, задайте вопросы.
Большое спасибо заранее!
Я не уверен, правильно ли вы поняли модель. Модель должна содержать (и, скорее всего, также читать) любые данные, необходимые, и представление должно быть только для представления этих данных пользователю. – arne
@arne: Я также не уверен, правильно ли я понял это. Итак, вопрос может быть расширен до этой части: «К чему относится I/O в MVC?» –