Введение
Очень часто необходимо структурировать модели следующим образом — на одном уровне модели с одной структурой, а на другом уровне структура модели изменяется. Для примера возьмем задачу, в которой требуется отобразить список устройств, у каждого устройства присутствуют группы настроек, а у каждой группы настроек есть список настроек различных типов. Для простоты будем полагать что у устройства есть только название и список групп. У группы есть только название и список настроек. У настройки есть только название и тип — чекбокс, текстовое поле или слайдер.
Данный паттерн был систематизирован на основе статьи. Далее идет описание паттерна, аналогично GoF.
Назначение
Паттерн, структурирующий использование сложных моделей в C++ с использованием QML. Облегчает использование вложенных списков моделей для образования иерархической структуры. При этом, для использования в QML, сложность не возрастает.
Применимость
Используйте паттерн, когда:
- нужно представить иерархию моделей, в которой на разных уровнях разные типы моделей
- модели заполняются динамически