Как функции Undo / Redo реализованы в редактировании видео - PullRequest
0 голосов
/ 27 января 2020

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

Заранее спасибо!

1 Ответ

0 голосов
/ 28 января 2020

То, что вы ищете, это Шаблон Memento . По сути, всякий раз, когда вы go изменяете и возражаете, вы сохраняете любую информацию, необходимую для восстановления состояния.

У этого паттерна есть 3 части:

  1. Оригинатор
  2. Сторож
  3. Сувенир

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

...