Правильное/неправильное использование делегатов для достижения расширяемости

Я пытаюсь предоставить пользователям моей графической библиотеки неограниченную возможность настройки эффектов перехода входа/выхода, сохраняя при этом простоту/предотвращая неправильное использование(когда элемент управления входит в представление или выходит из него).

Для этого я добавил делегата в класс Control, который будет принимать ссылку на Control и процент завершения перехода, чтобы пользователь мог плавно преобразовывать положение/непрозрачность элемента управления любым удобным для него способом. исходя из заданного процента. Все, что ему нужно сделать, это подписаться на функцию перехода перед входом/выходом управления.

Тем не менее, я понял, что было бы невозможно переходить/анимировать элементы управления, используя только текущий процент завершения, потому что вам также придется хранить и сравнивать начальное положение элемента управления.
Чтобы сделать это требование к памяти очевидным, следует ли принудительно использовать функтор-делегат?

Если да, то как мне сделать это минималистично/чисто?


Не стесняйтесь предлагать другой способ разрешить пользователям применять пользовательские анимации перехода!

7
задан Griffin 27 October 2012 в 21:37
поделиться