Сохранить или отменить изменения пользователя на объекте - PullRequest
0 голосов
/ 22 января 2020

У меня есть приложение, в котором пользователь может изменять данные на экране в форме (представленной в виде объектов в коде c ++), и когда пользователь хочет закрыть окно, я хочу спросить, следует ли сохранить или отменить изменения.

Если пользователь хочет сохранить, отредактированный объект должен быть сохранен в базе данных, и объект в памяти, конечно, также должен быть актуальным.

Если пользователь хочет отменить изменения, я хочу, чтобы объект в памяти был восстановлен до его предыдущего состояния.

Я не уверен, как реализовать это настолько эффективно, насколько это возможно, особенно отмена изменений. Вот некоторые варианты, которые я рассматриваю:

  1. Я создаю копию объекта в памяти где-нибудь в форме logi c и изменяю ее, и если пользователь хочет сохранить ее Я заменяю предыдущий объект в памяти на измененный.

  2. То же, что и выше, но объект каким-то образом сохраняет свою копию вместо того, чтобы поместить ее в форму logi c.

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

Это кажется такой обычной вещью в приложениях, так что, может быть, есть стандартный способ сделать это или шаблон проектирования?

...