Концепция паттерна модель-представление

Добавлено 3 апреля 2022 в 22:13

Распространенный шаблон при разработке пользовательских интерфейсов заключается в том, чтобы представление данных отделялось от визуализации. Это позволяет отображать одни и те же данные по-разному в зависимости от того, какую задачу выполняет пользователь. Например, телефонная книга может быть организована как вертикальный список текстовых записей или как сетка изображений контактов. В обоих случаях данные идентичны (телефонная книга), но визуализация разная. Это разделение обычно называют шаблоном модель-представление. В этом шаблоне данные называются моделью, а визуализация обрабатывается представлением.

В QML модель и представление объединяются делегатом. Обязанности распределяются следующим образом. Модель предоставляет данные. Для каждого элемента данных может быть несколько значений. В приведенном выше примере каждая запись в телефонной книге имеет имя, изображение и номер. Данные упорядочиваются в представлении, в котором каждый элемент визуализируется с помощью делегата. Задача представления состоит в том, чтобы упорядочить делегатов, при этом каждый делегат показывает пользователю значения каждого элемента модели.

Это означает, что делегат знает о содержимом модели и о том, как ее визуализировать. Представление знает о концепции делегатов и о том, как их размещать. Модель знает только о данных, которые она представляет.

Модель - представление - делегат
Модель - представление - делегат

Оригинал статьи:

Теги

GUI / Графический интерфейс пользователяQMLQtQtQuickQtQuick ControlsПаттерны проектирования / Design PatternsПрограммирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.