Как лучше реализовать архитектуру MVC/MVP? Делаю проект. Использую MVP архитектуру. Вид разделен на компоненты. Первый вопрос. Я получаю всю информацию об изменении в компонентах, произвожу все необходимые расчеты, а в модель передаю уже готовые значения. Можно ли в MVC/MVP так делать? Или вид должен только получать данные, а производить вычисления в другом слое? Второй вопрос. При расчетах нужны "служебные данные", типа координат, положения и тд. То есть это данные, которые не должны быть в модели. То есть логично эти данные передавать только между компонентами. При каком-либо изменении, эти данные должны меняться для всех компонентов. Решение, которое я реализовал: при инициализации компонентов, передаю объект, который хранит в себе эти данные. Компоненты при расчетах обращаются к этому объекту и изменяют его при необходимости. Таким способом у компонентов появляется доступ к актуальным данным. Можно ли так делать?
Ответ на первый вопрос: В MVP архитектуре обычно предполагается, что логика и вычисления находятся в презентере (Presenter), а модель (Model) содержит только данные и логику доступа к данным. Таким образом, лучше всего вычисления производить в презентере, а уже готовые значения передавать в модель для дальнейшего отображения в виде. Это позволит разделить ответственности между компонентами и сделает код более чистым и поддерживаемым.
Ответ на второй вопрос: В вашем случае передача "служебных данных" между компонентами через специальный объект, который хранит эти данные, является распространенным способом реализации такой функциональности. Этот подход позволяет обеспечить доступ к актуальным данным всем компонентам, которые имеют к ним доступ. Однако, важно убедиться, что обновление этих данных происходит корректно и безопасно, чтобы избежать проблем синхронизации и состояния. В целом, данный подход является допустимым и может быть использован для решения вашей задачи.
Ответ на первый вопрос: В MVP архитектуре обычно предполагается, что логика и вычисления находятся в презентере (Presenter), а модель (Model) содержит только данные и логику доступа к данным. Таким образом, лучше всего вычисления производить в презентере, а уже готовые значения передавать в модель для дальнейшего отображения в виде. Это позволит разделить ответственности между компонентами и сделает код более чистым и поддерживаемым.
Ответ на второй вопрос: В вашем случае передача "служебных данных" между компонентами через специальный объект, который хранит эти данные, является распространенным способом реализации такой функциональности. Этот подход позволяет обеспечить доступ к актуальным данным всем компонентам, которые имеют к ним доступ. Однако, важно убедиться, что обновление этих данных происходит корректно и безопасно, чтобы избежать проблем синхронизации и состояния. В целом, данный подход является допустимым и может быть использован для решения вашей задачи.