Я работаю в системе, где пользователь может редактировать существующие объекты (точнее, объекты «Фильтр») через графический интерфейс. Как подсказка пользовательского интерфейса, мы хотим включить кнопку сохранения, только если пользователь действительно что-то изменил в объекте. Мне было интересно, есть ли у кого-нибудь опыт с этой проблемой и как лучше всего подойти к ней.
Я думал о добавлении флага isDirty () к объекту домена. Когда пользователь начинает редактировать фильтр, я делаю копию, передаю ее в графический интерфейс и позволяю пользователю вносить изменения в копию. Привязка к флагу isDirty () включит / отключит кнопку сохранения. При сохранении различия затем объединяются в исходный объект и сохраняются.
Кроме того, я думал о том, что произойдет, если пользователь отменит изменения, внесенные в объект. Флаг isDirty () должен затем вернуть false. Поэтому я думаю, что единственный способ добиться этого - сохранить исходное значение каждого свойства внутри объекта домена.
Есть идеи?