Есть ли хорошо изученные шаблоны дизайна, связанные с перетаскиванием мышью и жестами?
Рассмотрим холст, содержащий объекты в иерархии родитель-потомок с определенной компоновкой.
Некоторые объекты можно перетаскивать на другие объекты с помощью мыши.
Кроме того, объекты можно изменять и перемещать с помощью мыши.
Различные горячие точки на объектах ведут себя по-разному в зависимости от состояния пользователя (перетаскивание, выбор.)
Для операции перетаскивания, некоторые элементы:
1) Визуальная обратная связь с пользователем для исходного объекта
2) Визуальная обратная связь с пользователем во время перетаскивания
3) Обнаружение области падения
4) Тесты на падение совместимости
5) Падение действия
Стандартные API имеют тенденцию объединять их в довольно монолитный код.
Кроме того, такие жесты, как перемещение и изменение размера, имеют определенные общие элементы:
1) Визуальная обратная связь с пользователем, когда мышь находится в области изменения размера / перемещения
2) Визуальная обратная связь во время операции перемещения / изменения размера
3) Завершение / отмена операции.
Вопрос в том, есть ли способ сделать это, который упростит код, разделит обязанности визуального уровня и уровня документа и, возможно, большую часть этого декларативного?
Например, для определения того, является ли точка под мышью целью выпадения, можно использовать некоторую форму тестирования попаданий в сочетании с шаблоном цепочки ответственности.
Я чувствую, что должны быть хорошие шаблоны проектирования, которые привносят дисциплину и организацию в эту, в противном случае, грязную проблему.
Приветствия