Просмотр диаграммы PureMVC действительно прояснил ситуацию.
Что я сделаю, так это объединю функционально связанные элементы управления / элементы пользовательского интерфейса в объекты и позволю представлению удалять объекты по мере необходимости.
- Когда объект галереи нажимается -> представление передает щелчок контроллеру
- Контроллер вызывает внутреннюю функцию, которая вызывает функцию в модели
- Вызываемая функция модели меняет внутреннее состояние (какой вид должен быть на сцене)
- Модель отправляет событие обновления / изменения, которое всплывает до вида
- Представление вызывает внутреннюю функцию для удаления текущего представления и добавления нового представления, как указано в состоянии модели
Я больше смотрю на то, как / почему PureMVC использует команду, медиатор, прокси и фасад.
UI КОМПОНЕНТЫ:
Галерея изображений будет одним компонентом пользовательского интерфейса, использующим шаблон Фабрика (что меняет алгоритм размещения) для создания подкласса ландшафта или портрета абстрактного класса рисунков.
Окном редактирования будет компонент пользовательского интерфейса
Панель инструментов редактирования будет компонентом пользовательского интерфейса, использующим шаблон для построения кнопок (один тип объекта - кнопка - с настраиваемыми атрибутами - заголовок, значок, есть ли у нее подключенный инструмент или действие и т.д.)
Когда нажимаются некоторые кнопки, появляется инструмент (например, инструмент кадрирования). Инструменты будут подклассами абстрактного класса Tool