Дизайн Вопрос о том, когда сохранить - PullRequest
2 голосов
/ 18 марта 2010

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

У меня есть коллекция объектов "MyCollection" в сетке. Вы можете открыть каждый объект «MyObject» в диалоговом окне редактора, дважды щелкнув сетку. Выбор «Отмена» в диалоговом окне приведет к отмене любых внесенных вами изменений, но следует выбрать «ОК», чтобы зафиксировать эти изменения обратно в базу данных, или же они должны зафиксировать изменения этого объекта обратно в коллекцию и иметь метод сохранения, который выполняет итерацию. через коллекцию и сохраняет все измененные объекты?

Если у меня есть объект «MyParentObject», который содержит коллекцию детей «MyChildObjectCollection», ни одно из изменений, внесенных в каждый «MyChildObject», не будет зафиксировано в базе данных до тех пор, пока «MyParentObject» не будет сохранен - ​​это имеет смысл. Однако в моей текущей ситуации ни один из объектов в коллекции не связан, поэтому следует ли «ОК» в диалоговом окне зафиксировать изменения в базе данных?

Ценю любые мнения по этому поводу.

Спасибо

Ответы [ 4 ]

2 голосов
/ 18 марта 2010

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

1 голос
/ 18 марта 2010

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

0 голосов
/ 18 марта 2010

Я всегда был сторонником подхода «уровня тупой презентации»; Таким образом, у вас есть класс Thing, который можно редактировать в ThingEditor - ThingEditor просто сообщает, выбрал ли конечный пользователь, принять или отменить - объект открытой презентации может принять решение о том, когда продолжать или нет. Имея тупой редактор, разные потребители редактора могут использовать его по-разному, так что ...

В соответствии с этим (и чтобы согласиться с ответом Каруссела), я бы сказал, что редактирование самого верхнего объекта (даже если он находится в коллекции) обычно происходит, когда конечный пользователь / клиент может ожидать сохранения, так что сделайте затем; Но если вы редактируете вложенные объекты в коллекциях, я не буду сохранять эти изменения до тех пор, пока не будет запрошено сохранение родительского объекта.

0 голосов
/ 18 марта 2010

Если диалоговое окно нижнего уровня выполняет сохранение, я бы дал ему кнопки «ОК / Отмена» и просто имел бы кнопку «Закрыть» на верхнем уровне (с добавлением / удалением примененных + сохраненных после завершения), в противном случае ОК Кнопки / Отмена на обоих уровнях будут моим предпочтительным подходом - с отменой на любом уровне «делать правильные вещи».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...